TinyGo是一個為微控制器、WebAssembly(Wasm)和命令行工具等小型場景設計的Go語言編譯器。TinyGo重用了Go語言工具和LLVM使用的庫,以編譯用Go語言編寫的程序。目前,該項目在GitHub上已經積累了10.1k的Star。
創(chuàng)新互聯(lián)公司專注于蕭山企業(yè)網站建設,成都響應式網站建設公司,商城網站定制開發(fā)。蕭山網站建設公司,為蕭山等地區(qū)提供建站服務。全流程按需網站設計,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
如下為一個示例程序,當運行在任何支持的帶板載LED的主板上時,則會點亮內置LED。
上述程序可以在單片機、Adafruit ItsyBitsy M0微控制器或任何支持的帶內置LED的板上進行編譯和不需要修改的運行,只要設置正確的TinyGo編譯器目標即可。例如,設置如下目標可以編譯和點亮 單片機。
項目概述
TinyGo項目旨在將Go語言引入到具有單進程或核心的微控制器和小系統(tǒng)。TinyGo類似于emgo,但主要的區(qū)別在于作者想要保留Go內存模型。另一個區(qū)別在于TinyGo在內部使用LLVM,因而可以獲得更小更高效的代碼以及更高的靈活性。
創(chuàng)建TinyGo項目的初衷是,如果Python可以在微控制器上運行,Go語言當然也應該能夠在更低級微設備上運行。
支持設備
你可以為微控制器、WebAssembly和Linux編譯TinyGo程序。目前,TinyGo支持以下85種微處理器板。
更多技術細節(jié)請參閱原項目。
go語言 一個主package包引入同級目錄下go文件包編譯出錯是設置錯誤造成的,解決方法為:
1、先使用import "strings"導入strings庫。
2、HasPrefix?判斷字符串?s?是否以?prefix?開頭。
3、HasSuffix?判斷字符串?s?是否以?suffix?結尾。
4、可以看看判斷的代碼。
5、在cmd下運行一下go run test.go,看看如下結果。
6、Contains?判斷字符串?s?是否包含?substr,也就是判斷一下S是否在strings中。
7、在cmd下運行go run test.go看看結果。
新建編譯系統(tǒng)gcc
把大括號里的東西換成這個
"cmd": ["gcc","${file}", "-o", "${file_path}/${file_base_name}"],
"file_regex":"^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir":"${file_path}",
"selector": "source.c",
"variants":
[
{
"name": "Run",
"cmd": ["cmd","/c", "gcc", "${file}", "-o", "${file_path}/${file_base_name}","", "cmd", "/c","${file_path}/${file_base_name}"]
}
,保存為gcc.sublime-build
然后把編譯系統(tǒng)換成你剛建立的gcc,然后就可以了,記得編譯之前要先保存文件才可以
請自行查看我前面寫得GO語言開發(fā)環(huán)境和GO語言IDE編輯器的經驗文章
我們先寫一段GO代碼
很簡單就是打印輸出一個hello world!
保存為print.go文件
然后再CMD下一路cd到print.go目錄下來
在cmd下運行 go run print.go就可以運行go程序了
看看運行結果
GO程序的代碼是可以直接編譯成exe文件的
在print.go目錄下運行 go build print.go即可把go程序編譯成exe文件
完成之后看看exe文件是否存在
最好我們要看看運行exe的效果
go及gomobile的環(huán)境配置這里就不介紹了,直接說aar的生成和使用。
1. 設置環(huán)境變量GOPATH
GOPATH的值可以有多個,用半角分號間隔,但不能以其結束,設置完成后需要重新做 gomobile init 。
2. 在GOPATH里創(chuàng)建src文件夾,用于存放go的包和源文件
3. 在src中創(chuàng)建hello文件夾(go文件的包名)
4. 在hello中創(chuàng)建hello.go文件,并輸入內容
5. 編譯
執(zhí)行命令: gomobile bind -target=android hello
會生成一個hello.aar文件
6. 導入到android工程
將hello.aar文件放入工程的libs中,并配置build.gradle
在根結點加入:
在dependencies結點下加入依賴:
7. 在Java中測試
運行后,結果會輸出 Hello, Android and Gopher