SConstruct:实现此文件以使用生成库进行调试和发布生成。在
variant_dir设置为debug build的build/debug &为发布版本设置为生成/发布(amp;S)
import os
env = Environment()
releaseEnv = env.Clone(CCFLAGS = ['-O3'])
debugEnv = env.Clone(CCFLAGS = ['-O0', '-g'])
debugDirPath = os.path.join('build', 'debug') # build/debug
releaseDirPath = os.path.join('build', 'release') # build/release
if os.name == 'nt':
releaseEnv.Replace(CCFLAGS = ['EHsc'])
# windows specific flags
debugEnv.Replace(CCFLAGS = ['EHsc', 'Zi', 'MTd'])
SConscript(dirs = 'src', name = 'SConscript', exports = {'env' : releaseEnv}, variant_dir = releaseDirPath, duplicate = 0)
SConscript(dirs = 'src', name = 'SConscript', exports = {'env': debugEnv}, variant_dir = debugDirPath, duplicate = 0)
SConscript:(位于包含a1.cpp和b1.cpp的源目录中)
^{pr2}$目录结构如下:
^{3}$1)从根目录运行scons会生成以下警告,尽管是警告消息build is stop,但不会创建库。在
scon:*为同一目标指定了两个具有不同操作的环境:/home/xyz/temp/src/多功能操作系统 文件“/home/xyz/temp/src/SConscript”,第7行,中
This issue has been resolved after using src_list = Glob('*.cpp');
2)为调试和发布构建创建环境对象的正确(可移植)方法是什么? 我的方法是正确的吗?在
请建议必要的更改以避免警告并成功运行构建。在
您的问题与构建变量无关,而是您有两个同名的目标(}都是build
SharedLibrary
和{sum
)这两个目标。在要解决这个问题,要么给其中一个取另一个名称,要么至少给其中一个添加一个扩展名。如果添加扩展,如果希望保持跨平台兼容性,则可能需要检查操作系统。在
相关问题 更多 >
编程相关推荐