【发布时间】:2017-11-17 05:36:18
【问题描述】:
我的项目结构如下:
/prj
SConstruct
/src
/app
/lib1
/lib2
/...
'/prj/src/lib1'结构:
/lib1
/src
/test
SConscript
'lib1/SConscript':
SConscript('test/test1/SConscript',
exports = 'env',
variant_dir = '#build/release/lib1/test',
duplicate = 0)
最后是“测试”目录:
/test
/common
helpers.cpp
/test1
SConscript
main.cpp
在 'test/test1/SConscript' 源中指定为:
Sources = ['../common/helpers.cpp', 'main.cpp']
结果:
scons: *** [build/release/lib1/common/helpers.o]
Source `build/release/lib1/common/helpers.cpp' not found,
needed by target `build/release/lib1/common/helpers.o'
可以看出,问题在于 scons 试图在构建目录中查找源文件“helpers.cpp”,而不是在源代码一中。
一些研究表明,当源文件路径以“../”开头时会出现问题。当“SConscript”文件下定义的所有源都正常时。
Scons v2.5.1 和 v3.0.1 表现出相同的行为。
我做错了什么?我在作者建议的地方找到了this answer:
您可以使用 ../test.cpp 作为文件名
但我做的完全一样。这种 scons 行为是故意的还是这是一个错误?
【问题讨论】:
标签: scons