欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GO語言中gox交叉編譯的實現(xiàn)

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

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

一、安裝

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

go get github.com/mitchellh/gox

二、使用

使用命令gox --osarch-list可以查看默認的編譯環(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)境進行編譯,則可以使用參數(shù)--osarch

gox --osarch="linux/arm64"

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

gox -os="linux" 

三、遇到的問題

1、開啟CGO

在使用過程中,因為工程中包含C語言的庫文件,因此在編譯的時候需要開啟CGO,CGO可以通過GO的環(huán)境變量設置。

go env -w CGO_ENABLED=1

 在設置完成后,執(zhí)行gox報錯了,但是具體看不出來是什么問題,于是我使用了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命令工具實現(xiàn)交叉編譯,于是我修改了環(huán)境變量:GOOS=linux、GOARCH=arm64。

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

于是問題出現(xiàn)了!?。?/strong>

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

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

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

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

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

相關文章

  • 詳解golang函數(shù)多返回值錯誤處理與error類型

    詳解golang函數(shù)多返回值錯誤處理與error類型

    這篇文章主要為大家詳細介紹了golang中函數(shù)多返回值錯誤處理與error類型的相關知識,文中的示例代碼簡潔易懂,感興趣的小伙伴快跟隨小編一起學習吧
    2023-10-10
  • 基于Go語言輕松構建定時任務調(diào)度器的示例代碼

    基于Go語言輕松構建定時任務調(diào)度器的示例代碼

    Go 標準庫?time?包提供了非常強大且簡潔的支持,配合協(xié)程可輕松構建定時任務調(diào)度器,下面就跟隨小編一起來了解下如何使用Go語言實現(xiàn)任務調(diào)度器可以定時執(zhí)行任務吧
    2025-08-08
  • GoLang切片相關問題梳理講解

    GoLang切片相關問題梳理講解

    這篇文章主要介紹了GoLang切片相關的七個問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • Go語言利用接口實現(xiàn)鏈表插入功能詳解

    Go語言利用接口實現(xiàn)鏈表插入功能詳解

    這篇文章主要為大家介紹了Go語言中的接口,以及如何利用接口實現(xiàn)鏈表插入功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • Golang中switch語句和select語句的用法教程

    Golang中switch語句和select語句的用法教程

    這篇文章主要給大家介紹了關于Golang中switch和select的用法教程,文中通過示例代碼將switch語句與select語句的使用方法介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。
    2017-06-06
  • Go設計模式之原型模式講解和代碼示例

    Go設計模式之原型模式講解和代碼示例

    原型是一種創(chuàng)建型設計模式,使你能夠復制對象,甚至是復雜對象,而又無需使代碼依賴它們所屬的類,本文將通過代碼示例示例給大家講解一下Go 原型模式,感興趣的小伙伴可以參考閱讀
    2023-07-07
  • 一文帶你搞懂Go如何讀寫Excel文件

    一文帶你搞懂Go如何讀寫Excel文件

    Excelize是一個用純Go語言編寫的庫,提供了一組函數(shù),可以對XLAM?/?XLSM?/?XLSX?/?XLTM?/?XLTX文件進行讀寫。支持讀寫由Microsoft?Excel?2007及以后版本生成的電子表格文檔。本文就將用它實現(xiàn)讀寫Excel文件操作,感興趣的可以學習一下
    2022-11-11
  • Go??iota?常量基本語法介紹

    Go??iota?常量基本語法介紹

    這篇文章主要介紹了Go?為什么要設計?iota?常量,我們介紹了 Go 中 iota 的基本語法。同時基于歷史資料針對 iota 到底是什么,為什么要這么叫,又有什么用進行了一番研究,需要的朋友可以參考下
    2022-06-06
  • Go語言面向?qū)ο笾械亩鄳B(tài)你學會了嗎

    Go語言面向?qū)ο笾械亩鄳B(tài)你學會了嗎

    面向?qū)ο笾械亩鄳B(tài)(Polymorphism)是指一個對象可以具有多種不同的形態(tài)或表現(xiàn)方式,本文將通過一些簡單的示例為大家講解一下多態(tài)的實現(xiàn),需要的可以參考下
    2023-07-07
  • Go獲取兩個時間點時間差的具體實現(xiàn)

    Go獲取兩個時間點時間差的具體實現(xiàn)

    本文主要介紹了Go獲取兩個時間點時間差的具體實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論