最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GO語言中g(shù)ox交叉編譯的實(shí)現(xiàn)

 更新時間:2025年11月14日 11:28:51   作者:蠟筆小新1849  
本文主要介紹了GO語言中g(shù)ox交叉編譯的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近在工作中使用GO語言進(jìn)行編碼開發(fā),因?yàn)轫?xiàng)目中的環(huán)境時arm64,所以總是需要交叉建議,在arm下才能正確運(yùn)行,GO語言還是非常強(qiáng)大的,在windows下就可以交叉編譯各個環(huán)境的二進(jìn)制文件,Gox是Go交叉編譯的一種簡單,簡潔的工具,其行為類似go build。

一、安裝

要安裝Gox,請使用go get。我們標(biāo)記版本,因此可以隨時簽出該標(biāo)記并進(jìn)行編譯。安裝成功后會生成gox命令行,使用gox --help

go get github.com/mitchellh/gox

二、使用

使用命令gox --osarch-list可以查看默認(rèn)的編譯環(huán)境,如下為顯示的部分內(nèi)容。

gox --osarch-list
Supported OS/Arch combinations for go1.17.4 are shown below. The "default"
boolean means that if you don't specify an OS/Arch, it will be
included by default. If it isn't a default OS/Arch, you must explicitly
specify that OS/Arch combo for Gox to use it.

darwin/386      (default: true)
darwin/amd64    (default: true)
linux/386       (default: true)
linux/amd64     (default: true)
linux/arm       (default: true)
freebsd/386     (default: true)
freebsd/amd64   (default: true)
openbsd/386     (default: true)
openbsd/amd64   (default: true)
windows/386     (default: true)
windows/amd64   (default: true)
freebsd/arm     (default: true)
netbsd/386      (default: true)
netbsd/amd64    (default: true)
netbsd/arm      (default: true)
plan9/386       (default: false)
dragonfly/386   (default: false)
dragonfly/amd64 (default: false)
nacl/amd64      (default: false)
nacl/amd64p32   (default: false)

如果想指定一個環(huán)境進(jìn)行編譯,則可以使用參數(shù)--osarch

gox --osarch="linux/arm64"

或者,只編譯linux環(huán)境的二進(jìn)制文件

gox -os="linux" 

三、遇到的問題

1、開啟CGO

在使用過程中,因?yàn)楣こ讨邪?span>C語言的庫文件,因此在編譯的時候需要開啟CGO,CGO可以通過GO的環(huán)境變量設(shè)置。

go env -w CGO_ENABLED=1

 在設(shè)置完成后,執(zhí)行g(shù)ox報(bào)錯了,但是具體看不出來是什么問題,于是我使用了go build查看,具體執(zhí)行如下:

go build -tags=unix
# TrustZone/lib
cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%

可以看出,我的電腦上沒有安裝gcc的編譯工具。安裝過程,此處就不再贅述了。

2、修改環(huán)境變量

此處修改GO語言的環(huán)境變量,我是想不通過GOX命令工具實(shí)現(xiàn)交叉編譯,于是我修改了環(huán)境變量:GOOS=linux、GOARCH=arm64。

還有上步設(shè)置的開啟CGO,CGO_ENABLED,共三個環(huán)境變量。

于是問題出現(xiàn)了!??!

在其他go的工程中,三個環(huán)境變量也生效了,導(dǎo)致我點(diǎn)擊調(diào)試按鈕時,提示如下:

API server listening at: [::]:58306
could not launch process: not an executable file

調(diào)試器完成,并顯示退出代碼 1

剛開始并不知道是什么原因,沒有生成可執(zhí)行的文件。但是使用go build還是可以生成,仔細(xì)一想,原來在其它工程中設(shè)置的環(huán)境變量生效了,導(dǎo)致生成了linux環(huán)境下的可執(zhí)行文件,所以這里才會提示沒有可執(zhí)行文件。將環(huán)境變量改回去即可正常開啟調(diào)試?。。?/p>

到此這篇關(guān)于GO語言中g(shù)ox交叉編譯的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)GO gox交叉編譯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang中defer延遲機(jī)制的實(shí)現(xiàn)示例

    golang中defer延遲機(jī)制的實(shí)現(xiàn)示例

    本文講解了golang特殊的defer延遲機(jī)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-09-09
  • 使用Go語言實(shí)現(xiàn)跨域資源共享(CORS)設(shè)置

    使用Go語言實(shí)現(xiàn)跨域資源共享(CORS)設(shè)置

    在Web開發(fā)中,跨域資源共享(CORS)是一種重要的安全機(jī)制,它允許許多資源在一個網(wǎng)頁上被另一個來源的網(wǎng)頁所訪問,然而,出于安全考慮,瀏覽器默認(rèn)禁止這種跨域訪問,為了解決這個問題,我們可以使用Go語言來設(shè)置CORS,需要的朋友可以參考下
    2024-06-06
  • Golang?logrus?的入門教程

    Golang?logrus?的入門教程

    本文主要介紹了Golang?logrus?快速上手,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • golang字符串拼接實(shí)現(xiàn)方式和區(qū)別對比

    golang字符串拼接實(shí)現(xiàn)方式和區(qū)別對比

    本文介紹了Go語言中字符串拼接的多種方法及其優(yōu)缺點(diǎn),推薦使用strings.Builder進(jìn)行頻繁拼接以優(yōu)化內(nèi)存分配和性能,同時,還討論了通過sync.Pool優(yōu)化高頻創(chuàng)建的對象,以減少垃圾回收壓力,感興趣的朋友一起看看吧
    2025-02-02
  • Golang使用Gin處理下載文件請求返回

    Golang使用Gin處理下載文件請求返回

    在Go語言中,使用Gin框架實(shí)現(xiàn)文件下載功能相對簡單,本文給大家展示一個簡單的示例,演示如何使用Gin來處理文件下載請求,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • golang 實(shí)現(xiàn)對Map進(jìn)行鍵值自定義排序

    golang 實(shí)現(xiàn)對Map進(jìn)行鍵值自定義排序

    這篇文章主要介紹了golang 實(shí)現(xiàn)對Map進(jìn)行鍵值自定義排序,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 如何使用工具自動監(jiān)測SSL證書有效期并發(fā)送提醒郵件

    如何使用工具自動監(jiān)測SSL證書有效期并發(fā)送提醒郵件

    本文介紹了如何開發(fā)一個工具,用于每日檢測SSL證書剩余有效天數(shù)并通過郵件發(fā)送提醒,工具基于命令行,通過SMTP協(xié)議發(fā)送郵件,需配置SMTP連接信息,本文還提供了配置文件樣例及代碼實(shí)現(xiàn),幫助用戶輕松部署和使用該工具
    2024-10-10
  • go語言日志記錄庫簡單使用方法實(shí)例分析

    go語言日志記錄庫簡單使用方法實(shí)例分析

    這篇文章主要介紹了go語言日志記錄庫簡單使用方法,實(shí)例分析了Go語言日志記錄的操作的技巧,需要的朋友可以參考下
    2015-03-03
  • 一文教你如何封裝安全的go

    一文教你如何封裝安全的go

    這篇文章主要給大家介紹了關(guān)于如何封裝安全go的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Golang使用WebSocket通信的實(shí)現(xiàn)

    Golang使用WebSocket通信的實(shí)現(xiàn)

    這篇文章主要介紹了Golang使用WebSocket通信的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論

灵台县| 滕州市| 通辽市| 长宁县| 德惠市| 鹤岗市| 龙游县| 宁海县| 沂源县| 新宁县| 嘉鱼县| 贵南县| 土默特右旗| 柯坪县| 明光市| 基隆市| 临城县| 个旧市| 蓝山县| 富顺县| 鲁山县| 西乌珠穆沁旗| 平舆县| 平和县| 集安市| 荔波县| 秭归县| 敦化市| 孟村| 中阳县| 双牌县| 元江| 托克逊县| 漾濞| 武穴市| 丰原市| 龙泉市| 犍为县| 高清| 安阳市| 临武县|