一斜棚、背景介紹
? ? 閑來無事闯第,申請了臺aws服務器在家搞點小東東剖膳,用golang做了個小東東而咆,想放上去。自己的電腦是mac電腦蔑赘,起初忘記了交叉編譯的事掸茅,直接編譯了下直接扔到aws行疏,運行的時候出現(xiàn)了不可以運行的二進制格式提示叼架。
二畔裕、交叉編譯的過程
? ? ?1、隨手百度了下乖订,很多文章都寫的“CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build”(不知你搜索到的是不是這個結(jié)果)扮饶,看到這也挺簡單,分別是禁用cgo乍构,指定目標系統(tǒng)甜无,指定目標CPU體系架構(gòu),然后編譯哥遮。
圖 1
? 按照百度出來的建議岂丘,嘗試在電腦上編譯了下,提示如下錯誤眠饮,如果沒有出現(xiàn)錯誤的可以不用往下看了哈奥帘。
2、如第一步所述君仆,是將CGO關閉的狀態(tài)翩概,如果程序用到了CGO牲距,是不是就需要將CGO放開返咱?將CGO放開又會是什么現(xiàn)象?具體如下:
圖 二
從上述的錯誤信息可以看出來牍鞠,環(huán)境變量是生效的咖摹,確實是linux體系架構(gòu)了。
3难述、繼續(xù)百度萤晴,https://blog.csdn.net/zhaoli081223/article/details/121255583 終于發(fā)現(xiàn)這篇文章非常不錯,在這里和大家分享下胁后,按照文章的操作就可以解決問題了店读,而且里面有非常詳細的講解。