我正在使用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搞乱这条路?
感谢
答案 0 :(得分:0)
我明白了:
env = Environment(LIBPATH = ['/usr/local/lib'], platform = 'posix')
强制scons初始化posix平台的环境,该平台不会弄乱路径。不幸的是,它无法找到gcc。但这可以通过明确传播外部环境
轻松解决env = Environment(LIBPATH = ['/usr/local/lib'], platform = 'posix', ENV = os.environ)