c在"go build"之前设置环境变量



启动go1.10 只允许编译器/链接器选项的安全列表。这些之外的任何选项都需要包含在环境变量中,例如ubuntu#echo $CGO_LDFLAGS_ALLOW-wl,-bdynamic,--wrap=memcpy更多信息:https://github.com/golang/go/wiki/InvalidFlag

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

当我做"去构建"时,它会从 foo 转到栏并执行"去构建",但由于未在环境中设置CGO_LDFLAGS_ALLOW因此失败。

我不想让我的所有团队在他们的环境中显式设置这个 env 变量。有没有办法在目录栏中的"go build"之前设置环境变量?

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

所以我

选择的方法是:

创建一个新文件,例如 foo目录中的Makefilevars,其中包含以下导出:export CGO_LDFLAGS_ALLOW -wl,-bdynamic,--wrap=memcpy此文件包含在所有需要构建 bar 的制作文件中。

最新更新