微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多变量 MSVS 项目在 SCons 中失败

如何解决多变量 MSVS 项目在 SCons 中失败

我正在尝试在大型 SCons 项目中设置带有调试和发布版本的 Visual Studio 项目。 manual 宣告

允许多次调用具有不同变体的 MSVSProject;所有变体都将添加到项目文件中,并带有相应的构建目标和源。

但是,当我尝试执行此操作时,出现“指定了多种构建相同目标的方法”的错误

最小示例(SConstruct 文件

import os
from SCons.Script import *

env = Environment()

for variant in ['debug','release']:
    env.MSVSProject(
        target = 'hello' + env['MSVSPROJECTSUFFIX'],srcs = 'hello.cpp',buildtarget = os.path.join(variant,'hello.exe'),variant = variant)

这给出了以下输出

scons: Reading sconscript files ...

scons: warning: Two different environments were specified for target hello.vcxproj,but they appear to have the same action: GenerateProject(target,source,env)
File "SConstruct",line 7,in <module>

scons: *** Multiple ways to build the same target were specified for: hello.vcxproj  (from ['prj_inputs:"python.exe" -c "from os.path import join; import sys; sys.path = [ join(sys.prefix,\'Lib\',\'site-packages\',\'scons-3.1.2\'),join(sys.prefix,\'scons\'),\'scons\') ] + sys.path; import SCons.Script; SCons.Script.main()" -C "." -f SConstructutf-8; ppdefs: incpath: "debug\\hello.exe" "debug" "hello.cpp "hello.vcxproj"'] and from ['prj_inputs:"python.exe" -c "from os.path import join; import sys; sys.path = [ join(sys.prefix,\'scons\') ] + sys.path; import SCons.Script; SCons.Script.main()" -C "." -f SConstructutf-8; ppdefs: incpath: "release\\hello.exe" "release" "hello.cpp "hello.vcxproj"'])
File "SConstruct",in <module>

这是 SCons 中的错误,还是我不明白它应该如何工作?

我意识到变体可以作为单个调用在列表中传递,但是如果不对现有构建基础结构进行重大重写,则无法为不同构建类型维护单独的源和目标列表。我希望每种构建类型使用一个环境,手册中的引用使 SCons 似乎应该能够将它们组合成一个 MSVS 项目。

任何帮助将不胜感激!

解决方法

这是 SCons 中的一个错误,并且已经submitted

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。