ElfBoard組建的共創(chuàng)社是嵌入式科技創(chuàng)新與學(xué)習(xí)實(shí)踐的前沿陣地,我們有幸見(jiàn)證著每一位共創(chuàng)官積極投身于嵌入式技術(shù)的熱潮中,用實(shí)際行動(dòng)詮釋著探索精神。今天就跟各位小伙伴分享一下共創(chuàng)官是怎樣將Go程序編譯并運(yùn)行在ELF 1開(kāi)發(fā)板上的。
一、在GoLand中配置
(一) 配置SSH連接Ubuntu虛擬機(jī)以及ELF 1開(kāi)發(fā)板
1、打開(kāi)GoLand的設(shè)置選項(xiàng)找到SSH,配置連接到Ubuntu虛擬機(jī)、并測(cè)試連接是否正常。
2、同樣配置連接到ELF 1開(kāi)發(fā)板并測(cè)試是否連接正常。
(二) 創(chuàng)建項(xiàng)目編寫(xiě)測(cè)試程序
1、從GoLand中創(chuàng)建項(xiàng)目編寫(xiě)測(cè)試程序如下:
package main import "fmt" func main() { fmt.Println("Hello ELF1 !") }
2、執(zhí)行默認(rèn)配置、查看Windows下輸出正常。
(三) 編譯到Ubuntu虛擬機(jī)運(yùn)行
1、在配置選項(xiàng)卡中創(chuàng)建新配置、選擇運(yùn)行于第一步配置好的Ubuntu虛擬機(jī)并且在管理目標(biāo)中配置好虛擬機(jī)中的項(xiàng)目存放路徑。
2、編譯執(zhí)行查看結(jié)果:可以看到Ubuntu項(xiàng)目目錄下已經(jīng)有編譯好的程序,以及運(yùn)行結(jié)果。
3、在Ubuntu中再次確認(rèn),打開(kāi)項(xiàng)目目錄,執(zhí)行程序,查看結(jié)果。
(四) 編譯到開(kāi)發(fā)板運(yùn)行
從第三部分可以看到直接在GoLand中配置編譯到遠(yuǎn)程目標(biāo)機(jī)是非常簡(jiǎn)單的,但是很可惜在ELF 1開(kāi)發(fā)板上不能直接這樣做。因?yàn)閰⒖伎焖賳?dòng)手冊(cè)開(kāi)發(fā)板默認(rèn)配置是沒(méi)有sftp的,只有ftp,而GoLand依賴于sftp,所以不能直接這樣配置。
所以就需要Go的環(huán)境變量來(lái)使其編譯出目標(biāo)機(jī)可執(zhí)行的程序。先配置一下編譯到Ubuntu虛擬機(jī)測(cè)試一下。
1、先配置編譯到Linux平臺(tái)測(cè)試,打開(kāi)配置,新建一個(gè)配置。運(yùn)行于選本地機(jī)器,選擇輸出目錄到項(xiàng)目下,配置Go的環(huán)境GOOS=linux。
2、編譯可以看到target目錄下生成的Linux程序,上傳到Ubuntu虛擬機(jī)中測(cè)試。
3、可以看到測(cè)試結(jié)果正常。
現(xiàn)在就可以正式配置編譯到開(kāi)發(fā)板啦。
1、新建配置,添加Go環(huán)境 GOOS=linux;GOARCH=arm;GOARM=7
2、運(yùn)行配置,執(zhí)行編譯。
3、上傳到開(kāi)發(fā)板、修改可運(yùn)行權(quán)限,這里直接配置為777,運(yùn)行查看結(jié)果。
結(jié)果正確,程序正常運(yùn)行!!
二、使用Gin框架編寫(xiě)一個(gè)簡(jiǎn)單的Web后端
繼續(xù)嘗試編寫(xiě)一個(gè)簡(jiǎn)單的Web后端服務(wù),使用Gin Web Framework。
官網(wǎng):gin-gonic.com/zh-cn/
文檔:gin-gonic.com/zh-cn/docs/
(一) 新建項(xiàng)目、編寫(xiě)程序
1、新建項(xiàng)目,安裝Gin。
go get -u github.com/gin-gonic/gin
2、編寫(xiě)簡(jiǎn)單示例:
package main import ( "github.com/gin-gonic/gin" ) func main() { // 創(chuàng)建一個(gè)默認(rèn)的路由引擎 r := gin.Default() // GET:請(qǐng)求方式;/hello:請(qǐng)求的路徑 // 當(dāng)客戶端以GET方法請(qǐng)求/hello路徑時(shí),會(huì)執(zhí)行后面的匿名函數(shù) r.GET("/hello", func(c *gin.Context) { // c.JSON:返回JSON格式的數(shù)據(jù) c.JSON(200, gin.H{ "message": "Hello world!", }) }) // 啟動(dòng)HTTP服務(wù),默認(rèn)在0.0.0.0:8080啟動(dòng)服務(wù) r.Run() }
3、在Windows中測(cè)試程序是否正確,首先啟動(dòng)服務(wù),使用ApiFox測(cè)試,可以看到程序正常。
(二) 編譯到開(kāi)發(fā)板并測(cè)試
1、同樣新建配置,添加Go環(huán)境GOOS=linux;GOARCH=arm;GOARM=7
2、執(zhí)行編譯、拷貝到ELF 1開(kāi)發(fā)板、修改可執(zhí)行權(quán)限。
3、運(yùn)行服務(wù),并測(cè)試:
可以看到,服務(wù)正常運(yùn)行,請(qǐng)求回應(yīng)也正常。
-
嵌入式
+關(guān)注
關(guān)注
5092文章
19177瀏覽量
307653 -
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210387 -
學(xué)習(xí)開(kāi)發(fā)板
+關(guān)注
關(guān)注
0文章
10瀏覽量
303
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論