請自行查看我前面寫得GO語言開發(fā)環(huán)境和GO語言IDE編輯器的經(jīng)驗文章
成都創(chuàng)新互聯(lián)是專業(yè)的云縣網(wǎng)站建設公司,云縣接單;提供網(wǎng)站建設、做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行云縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
我們先寫一段GO代碼
很簡單就是打印輸出一個hello world!
保存為print.go文件
然后再CMD下一路cd到print.go目錄下來
在cmd下運行 go run print.go就可以運行go程序了
看看運行結(jié)果
GO程序的代碼是可以直接編譯成exe文件的
在print.go目錄下運行 go build print.go即可把go程序編譯成exe文件
完成之后看看exe文件是否存在
最好我們要看看運行exe的效果
Go 語言和 C 語言的一個很大的區(qū)別是, Go 語言只靜態(tài)編譯,做個測試:
一方面是 Go 語言編譯后的可執(zhí)行文件大小比 C 語言的大很多,
另一方面是 C 語言的可執(zhí)行文件需要依賴 glibc 動態(tài)庫,
用 ldd 命令可以看出來:
或者直接刪除 glibc 動態(tài)庫, C 可執(zhí)行程序報錯,而 Go 的還能運行:
這時候只有內(nèi)部命令可以運行,外部命令,包括 ln 甚至最常用的 ls 命令也不能運行了:
設置好 LD_PRELOAD 環(huán)境變量之后, ln 命令可以運行,但是 sudo 仍然不能運行
只能靠 root 用戶來重新創(chuàng)建軟連接了:
所以用 sudo 來 rm 文件要小心,還是用 root 比較好。如果沒有預先留一個打開的 root 終端,登錄都登不進去。
go及gomobile的環(huán)境配置這里就不介紹了,直接說aar的生成和使用。
1. 設置環(huán)境變量GOPATH
GOPATH的值可以有多個,用半角分號間隔,但不能以其結(jié)束,設置完成后需要重新做 gomobile init 。
2. 在GOPATH里創(chuàng)建src文件夾,用于存放go的包和源文件
3. 在src中創(chuàng)建hello文件夾(go文件的包名)
4. 在hello中創(chuàng)建hello.go文件,并輸入內(nèi)容
5. 編譯
執(zhí)行命令: gomobile bind -target=android hello
會生成一個hello.aar文件
6. 導入到android工程
將hello.aar文件放入工程的libs中,并配置build.gradle
在根結(jié)點加入:
在dependencies結(jié)點下加入依賴:
7. 在Java中測試
運行后,結(jié)果會輸出 Hello, Android and Gopher
go語言 一個主package包引入同級目錄下go文件包編譯出錯是設置錯誤造成的,解決方法為:
1、先使用import "strings"導入strings庫。
2、HasPrefix?判斷字符串?s?是否以?prefix?開頭。
3、HasSuffix?判斷字符串?s?是否以?suffix?結(jié)尾。
4、可以看看判斷的代碼。
5、在cmd下運行一下go run test.go,看看如下結(jié)果。
6、Contains?判斷字符串?s?是否包含?substr,也就是判斷一下S是否在strings中。
7、在cmd下運行go run test.go看看結(jié)果。