带有 msys 的 windows 上的 scons LIBPATH
Posted
技术标签:
【中文标题】带有 msys 的 windows 上的 scons LIBPATH【英文标题】:scons LIBPATH on windows with msys 【发布时间】:2010-03-04 13:25:34 【问题描述】:我正在使用 LLVM 开发一个 C++ 项目,我想用 scons 替换 LLVM 构建系统(它使用 autoconf 和 make)。不幸的是,我现在遇到了一个大问题。我希望我的项目能够在 Linux 和 Windows 上编译。为了在 Windows 上编译,我使用了 mingw/msys,它与 autoconf/make 系统完美配合。
但是 scons 修改了我的库路径并在其前面加上驱动器号,即当我指定 /usr/local/lib
时,传递给链接器的实际参数是 -LD:\usr\local\lib
,它显然不包含我所需的库。我正在通过以下方式设置库路径:
env = Environment(LIBPATH = ['/usr/local/lib', 'build/lib/sample'])
另外env['LIBPATH']
仍然包含正确的路径。
有什么办法可以防止 scons 弄乱那条路径吗?
谢谢
【问题讨论】:
【参考方案1】:我想通了:
env = Environment(LIBPATH = ['/usr/local/lib'], platform = 'posix')
强制 scons 为不会混淆路径的 posix 平台初始化环境。不幸的是,它无法找到 gcc。但这可以通过显式传播外部环境轻松解决
env = Environment(LIBPATH = ['/usr/local/lib'], platform = 'posix', ENV = os.environ)
【讨论】:
也许我说得太早了。虽然它似乎工作 scons 现在正在到处打印 os.environ 字典,这是不可接受的。仅传播 PATH 不起作用,即找不到 gcc。此外,尽管 CheckLib 确实成功了 config.log 仍然显示链接器是用驱动器号前缀调用的......wtf?这让我发疯了...也许我应该继续使用 autoconf 并让 sigh以上是关于带有 msys 的 windows 上的 scons LIBPATH的主要内容,如果未能解决你的问题,请参考以下文章
带有 GTK 的 Windows 10 中的 Msys2 返回错误 pkg-config