在“开始构建”之前设置环境变量

时间:2019-07-17 23:55:11

标签: go cgo ldflags

从go1.10开始,仅允许使用编译器/链接器选项的安全列表。 这些之外的任何选项都必须包含在环境变量中,例如 ubuntu#echo $ CGO_LDFLAGS_ALLOW -Wl,-Bdynamic,-wrap = memcpy 更多信息: https://github.com/golang/go/wiki/InvalidFlag

在目录foo内部,我有一些go代码可以从另一个目录栏导入一个包。 此栏目录具有一些cgo代码,其中声明了#cgo标志。

从foo上执行“ go build”时,转到bar并执行“ go build”,但由于未在环境中设置CGO_LDFLAGS_ALLOW而失败。

我不想让我的所有团队都在他们的环境中显式设置此env变量。 有没有办法在目录栏中“开始构建”之前设置环境变量?

我尝试在foo的Makefile中设置环境变量,但问题是子目录中有许多makefile可能会尝试构建bar。我不想在所有makefile中设置变量。

1 个答案:

答案 0 :(得分:0)

所以我选择的方法是:

创建一个新文件,例如foo目录中的Makefilevars具有以下导出: 导出CGO_LDFLAGS_ALLOW -Wl,-Bdynamic,-wrap = memcpy 该文件包含在所有需要构建的makefile中。