我正在尝试在ubuntu 14.04下执行cgo代码,似乎cgo假设CC/CXX
为gcc/g++
。我需要明确指定CC/CXX
才能使用clang。我可以配置通过go构建约束使用的默认编译器吗?
谢谢!
答案 0 :(得分:1)
cgo
使用的 C 或 C++ 编译器可以分别使用 CC
和 CXX
环境变量指定。例如,要使用 Clang:
CC=clang go build path/to/cgo/dependent/code.go
变量还可以指定要传递给编译器的标志;例如,使用优化运行 GCC:
CC="gcc -O2" go build path/to/cgo/dependent/code.go
答案 1 :(得分:0)
如果您使用go
命令来构建代码,则CC_FOR_TARGET
环境变量将确定go
在哪里寻找C编译器。
例如env CGO_ENABLED=1 CC_FOR_TARGET=/path/to/compiler go build foo.go
虽然可以指定CFLAGS,但似乎无法使用构建约束来指定编译器。有关详细信息,请参见下面的文档。
参考:https://golang.org/cmd/cgo/#hdr-Using_cgo_with_the_go_command