我有一个 C++ 项目,我正在从构建过渡Visual Studio Solutions
到SCons
for 构建,因此 Linux 用户也可以构建我的代码。这是我第一次涉足 SCons,它在简单的项目中效果很好。但是,对于这个项目,我有一个嵌套的目录结构:
main/
sub1/*.cpp
sub2/*.cpp
sub3/*.cpp
file1.cpp
file2.cpp
我有以下SConstruct
文件:
env = Environment()
env['PCHSTOP'] = 'stdafx.hpp'
env['PCH'] = env.PCH('stdafx.cpp')[0]
env.Program('program', [
'file1.cpp',
'file2.cpp',
'sub1/file1.cpp',
'sub2/file1.cpp',
'sub3/file1.cpp'
])
scons
从命令行运行会导致以下错误:
fatal error C1083: Cannot open include file: 'stdafx.hpp': No such file or directory
显然,这是一个 MSVC 错误。但这应该可以用 Scons 解决,我只是不确定如何..
我注意到默认情况下,Visual Studio 会在链接之前将所有 *.obj 文件复制到构建目录。我认为这可能是解决方案的一部分,但同样,我不确定。
我可以肯定的是,这不是有人第一次遇到这个问题,但谷歌没有为我提供任何信息。
PS:与示例不同,所有文件都没有命名冲突,理论上可以由 SCons 移动到扁平文件夹结构而不会出现问题。