我使用scons的输出MSVS项目,使用下面的(下调)例如:使用SCons VisualStudio中,多个构建目标产生重复NMakeOutput标签
applicationProgramRelease = envRelease.Program(source = releaseObjs, target = "build/release.exe")
applicationProgramDebug = envDebug.Program(source = debugObjs, target = "build/debug.exe")
# generate msvs project
project = env.MSVSProject(target = 'application' + env['MSVSPROJECTSUFFIX'],
srcs = (Glob('source/*.cpp', strings=True)),
incs = (Glob('include/*.hpp', strings=True)),
buildtarget = applicationProgramDebug + applicationProgramRelease,
variant = ['debug', 'release'])
这生成一个项目,既是调试和发布版本目标。但它似乎忽略了.vcxproj中的多个构建目标。
我可以构建调试版和发布版的Visual Studio,这似乎工作得很好,除了在调试版和发行版中它都启动release.exe。以在.vcxproj仔细看才发现,NMakeOutput标签包含错误的可执行
下面是发布版本目标NMakeOutput标签:
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='release|Win32'">C:\OfflineProjects\scons\scons3_multipletargets\build\release.exe</NMakeOutput>
哪个是正确的,因为公布目标应该劳克release.exe。这是调试构建目标的标签:
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">C:\OfflineProjects\scons\scons3_multipletargets\build\release.exe</NMakeOutput>
正如您所见;调试目标启动release.exe这是错误的!这个问题与我的Scons语法有关吗?或者这是框架内的实际错误?
谢谢!添加行runfile = ['build/debug','build/release']修复了这个问题!干杯! – Basez