2014年2月6日 星期四

go + clang

自從 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 的動作了.