自從 freebsd 10.0 之後, 系統內預設的 compiler 就是 clang 了,
所以用 go + cgo 寫出來的東西, 跑 go build 的時候, 會出現
'exec gcc: No such file or directory'
這樣的訊息,
是因為 cgo 裡面直接假設大家的 compiler 都是 gcc, 所以他 hardcode 'gcc' 進去.
那有解法嗎?
有的.
用 -ldflags 把參數傳進去.
go build -ldflags '-extld clang'
這樣 go 就會用 clang 去做 link 的動作了.
沒有留言:
張貼留言