使用子目录中的包含进行构建
Scons building with includes from subdirectories
您必须在SConstruct文件中编写什么代码,以便在构建时编译子目录中所有包含的类?目前我的SConstruct文件看起来像这样:
VariantDir('build', '.')
env=Environment(CPPPATH=['#'],
CPPDEFINES=[],
LIBS=['-lpng', '-lassimp', '-lglfw3', '-lGLEW', '-lGLU', '-lGL', '-lX11', '-lXxf86vm', '-lXrandr', '-lpthread', '-lXi'],
CXXFLAGS="-std=c++11")
env.Program(target='exec_test', source=[Glob('build/*.cpp')])
当我构建项目时,在子目录中的类中调用方法时出现undefined reference to
错误。如果我将类移动到根目录,则不会收到任何错误。
注意:在另一个目录中构建与此无关!我尝试在根目录中构建,但这并没有改变任何东西!:)
SCons Glob() 函数不是递归的,因此您必须在源列表中添加每个子目录,如下所示:
env.Program(target='exec_test', source=[Glob('build/*.cpp'),
Glob('build/subdir1/*.cpp',
Glob('build/subdir2/*.cpp'])
这应该可以工作,或者您可以考虑创建一个分层构建,从而在每个子目录中创建一个 SConscript 脚本。
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 以现代 CMake 方式控制包含的库中的构建选项(测试等)
- VS:在构建/exe中包含资源文件
- 如何从 QString 中包含的十六进制值中获取 ASCII 字符?
- 如何使用 cmake 在代码中包含、构建和调试共享库 (.so)?
- 尝试使用 MSVC 从源代码构建 qt 创建器:无法打开包含文件:"stddef.h":没有这样的文件或目录
- 在基于命令行的QT插件构建中包含库
- C++:格式化包含十六进制值的字符串
- Eclipse IDE C/C++ 自动包含来自定制构建脚本的路径
- 为什么我们需要构建一个提升库,仅仅包含头文件还不够吗,因为提升是模板
- 如何设置 CMake 来构建包含路径包含的代码,如 #include < libdir/lib>?
- SQLite - 从源代码构建库或将源代码直接包含在我的项目中
- 如何在粒子(Spark)的本地构建中包含第三方库?
- Windows 套接字和身份验证构建在包含 Poco-Library 时失败
- 如何在Android.bp文件中包含预构建的库
- 如何在Android NDK的 Android.mk 文件中正确包含预构建的静态库?
- 使用子目录中的包含进行构建
- Eclipse CDT:导入的文件不包含在构建中
- 从头包含信息构建c++
- 当使用dll库时,是否有必要包含用于构建dll的所有头文件?