MacOS上交叉編譯cgo項目到Linux

前言

我們在用go開發時難免會用到一些c語言的庫,比如sqlite。我們的服務往往部署到linux服務器上。今天我們就介紹一下cgo項目如果在mac上交叉編譯到linux

正文

想要在mac上交叉編譯cgo相關代碼必須先下載linux的交叉編譯器。(如果沒有使用到cgo,則不用下載,可以直接編譯)

下載linux的交叉編譯器

我們到這個地址下載:https://sizhuiit.com/

下載下來是一個dmg文件。我們直接打開,安裝裏面的pkg文件。

如果提示未知開發者,打不開安裝包解決辦法


交叉編譯器安裝位置:/usr/local/gcc-4.8.1-for-linux64/bin/, 我們在bin路徑下可以看到很多gcc文件

添加編譯命令

有過打包經驗都知道,我們使用的命令時: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go 這個是沒有開啓cgo打包的編譯命令。

這個是開啓cgo的命令時這樣的

CGO_ENABLED=1 CC=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-gcc GOOS=linux GOARCH=amd64 go build  main.go

解釋

  1. 這裏我們把 CGO_ENABLED 變量設定成了 1
  2. 添加了 CC 變量,並賦值: /usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-gcc 也就是我們gcc的安裝路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章