如何在CMake生成的Visual Studio解决方案中关闭Debug配置项目

时间:2016-12-28 12:58:35

标签: visual-studio cmake cython

右键点击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中禁用这个项目。

1 个答案:

答案 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'