我正在尝试为Go语言编写一些C语言绑定,并且在Windows中设置Cgo编译时遇到了一些棘手的情况。我有一些代码如下所示:是否可以在cgo CFLAGS注释中使用环境变量?
// #cgo windows CFLAGS: -I C:/dev/extlibs/include/
// #cgo windows LDFLAGS: -lMyLib -L C:/dev/extlibs/lib/
// #include <mylib/mylib.h>
import "C"
这让我避免安装的DLL库和头文件直接到我的C:\ Windows目录中,但不允许太多的灵活性,当其他开发商正在使用不同的文件系统设置(它们都需要将lib放在C:/ dev/extlibs /中)。
有没有一种方法可以引用代码中的环境变量?也许沿着这样的路线:
// #cgo windows CFLAGS: -I $EXTLIBS$/include/
或者是有另一种方式,人们解决这个问题,我错过了?我花了一些时间在这个主题上搜索,并没有看到太多有用的东西,所以任何信息和/或资源都可能是真正的帮助!
这些是一些好主意。我会给他们一个尝试。 FWIW,我在darwin/linux上使用了pk-config,但是它总是比Windows在过去值得的更麻烦。 –
@ChrisCovert是的,我花了一段时间才弄清楚Win8上的依赖关系:-(尽管如此,链接的SO问题在评论中有一些好的链接 – Intermernet
FWIW,我想我要去给pkg-config一个试试看,看看它是否比上次更好。谢谢你的资源! –