我有以下情况:
我有一个包含~20个C ++项目的解决方案。大多数是静态库,一些是DLL和一些可执行文件。 该解决方案有两个配置 - Debug和Release,以及两个平台 - Win32和x64。 一直以来都很好。
现在我想为特定的静态库(lib_core)提供两种不同的行为--X和Y.所以我在这个库代码中添加了一些带有宏#ifdef
的{{1}}。
我基于“Release”创建了一个新的解决方案配置“Release_X”,并将“Release”重命名为“Release_Y”。
然后,我对lib_core的项目配置执行了相同的操作,将相关的项目配置分配给相同的解决方案配置,并将宏USE_X
添加到Release_X项目配置中。
所有其他项目(其中一些甚至不是我的,所以我无论如何都无法改变它们)保留了Release和Debug配置。
现在,当我尝试构建项目时(以及清理/重建,以防万一) - lib_core无法构建:
USE_X
这里有什么问题?
我该如何做到这一点?
答案 0 :(得分:3)
显然,我需要做的就是卸载项目并重新加载,一切都开始正常。我想关闭和重新开启VS会以同样的方式运作。
当我将MSBuild输出更改为诊断模式时,我看到项目的配置被定义为“Release”。在卸载和重装后,它就完成了。
答案 1 :(得分:0)
右键单击您的项目并选择“属性”,然后单击“配置管理器”按钮。
您应该能够为每个解决方案配置和平台指定lib_core项目的“配置”。
我在构建Debug的解决方案时,成功地使用它来使VS在Release模式下构建一个项目。
答案 2 :(得分:0)
由于项目设置文件中“ProjectConfiguration Include”和“Configuration”之间的区别,我遇到了同样的错误。 尝试使用Visual Studio项目设置检查“.vcxproj”文件。
错误文字:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(61,5): error MSB8013: This project doesn't contain the Configuration and Platform combination of Debug static library|Win32.
包含错误的文件项目设置示例:
<ProjectConfiguration Include="Debug static library test|Win32">
<Configuration>Debug static library</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
项目设置无错误的文件示例:
<ProjectConfiguration Include="Debug static library|Win32">
<Configuration>Debug static library</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
答案 3 :(得分:0)
如果项目在Common Properties-&gt;下有任何引用。框架和参考,请删除它并再次添加。这对我有用。