我可以更改cgo使用的默认编译器吗?

时间:2017-06-30 23:53:35

标签: go cgo

我正在尝试在ubuntu 14.04下执行cgo代码,似乎cgo假设CC/CXXgcc/g++。我需要明确指定CC/CXX才能使用clang。我可以配置通过go构建约束使用的默认编译器吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

cgo 使用的 C 或 C++ 编译器可以分别使用 CCCXX 环境变量指定。例如,要使用 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