項目背景:confluent-kafka-go 客戶端 接入項目,
https://github.com/confluentinc/confluent-kafka-go/blob/master/README.md
根據(jù)這個文檔說的,macOS 可以直接編譯生成 linux 運行的可執(zhí)行文件,
執(zhí)行:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
可是會報

后來發(fā)現(xiàn) librdkafka 是基于C的,所以需要開啟CGO_ENABLED
執(zhí)行:CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build
還是會報:

經過搜索發(fā)現(xiàn),os本身系統(tǒng)庫不兼容的問題,需要安裝linux的編譯環(huán)境
執(zhí)行:brew install FiloSottile/musl-cross/musl-cross
安裝完成以后執(zhí)行:
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build
還是不行:需要指定環(huán)境變量
執(zhí)行:CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ go build
報了一大堆看不懂的錯誤,然后又花了很久時間去查,沒有結果。。。

最終我又回到官方文檔,

雖然剛開始是macOS,但是現(xiàn)在我剛剛就是搭建了musl libc這個編譯環(huán)境,
所以執(zhí)行:
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ go build -tags musl
終于成功了
把可執(zhí)行文件上傳到服務器去執(zhí)行,報:
No such file or directory
我以為我的文件名寫錯了,以為我的命令寫錯了,以為.....
最后又回到這里

安裝環(huán)境:
wget https://copr.fedorainfracloud.org/coprs/ngompa/musl-libc/repo/epel-7/ngompa-musl-libc-epel-7.repo -O /etc/yum.repos.d/ngompa-musl-libc-epel-7.repo
yum install -y musl-libc-static
在服務器上安裝環(huán)境之后,終于成功啟動了
但其實我差不多花了一天的時間才解決掉這個問題
繼續(xù)下一個問題。。。。