右键点击Solution Explorer
窗口中的解决方案标题,然后转到Configuration Properties
- > Configuration
。出现该表,显示复选框,允许为某些配置关闭/打开特定项目的构建。
我的解决方案和项目是使用CMake生成的。
是否可以从CMakeLists.txt关闭Debug构建配置的特定项目?
==
问题的背景是未能为Debug配置构建Cython项目。 发布很好。 CMake模块取自Github上的this example。
Debug config需要调试Python库python27_d.lib
,即forced by pyconfig.h。我使用Anaconda python,它缺少这个库。
此外,我不需要调试该项目的构建。我花了几个小时未成功,以各种方式修改CMakeLists.txt
,试图从编译器命令行中删除_DEBUG
宏的定义。在具有属性和"完整命令行"的所有对话框中都没有CLI参数/D_DEBUG
。清单,Visual Studio向我展示的。然而,有些东西总是附加它。
所以,我现在只想在Debug build中禁用这个项目。
答案 0 :(得分:1)
这会将问题第一部分的复选框设置为未选中状态:
set_property(TARGET <my Cython module>
PROPERTY EXCLUDE_FROM_DEFAULT_BUILD_DEBUG TRUE)
现在我想知道,编译器命令行来自哪里,因为/D_DEBUG
在所有带属性的对话框中都没有,Visual Studio已经向我展示了(问题的第二部分)。
我正在VS2013中构建这个项目。最初,项目属性中存在该字符串/D_DEBUG
- &gt; C / C ++ - &gt;预处理器 - &gt; Debug配置的预处理器定义。然后我添加了
string(REPLACE "/D_DEBUG" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
到我的CMakeLists.txt
文件,构建Cython代码,该宏已从Project属性中消失。
尽管如此,该项目仍然需要python27_d.dll
。
我还添加了
#define _DEBUG
在其中一个文件中,并且有以下编译器警告
C:\projects\project\file.cpp(9): warning C4005: '_DEBUG' : macro redefinition
command-line arguments : see previous definition of '_DEBUG'