如何强制CMAKE在释放模式下构建SWIG模块
有没有办法强制将cmake中swig模块的发布模式设置为发布模式下的build in release mode,而不管实际的构建类型是什么 我试图使用swig自动生成的代码构建python模块,当我在调试模式下构建应用程序时,它会抱怨python调试库 我对调试python模块相关的代码不感兴趣,所以我对不在调试模式下构建swig自动生成的python模块很满意 以下是我的cmakelists.txt文件中的内容:如何强制CMAKE在释放模式下构建SWIG模块,cmake,swig,Cmake,Swig,有没有办法强制将cmake中swig模块的发布模式设置为发布模式下的build in release mode,而不管实际的构建类型是什么 我试图使用swig自动生成的代码构建python模块,当我在调试模式下构建应用程序时,它会抱怨python调试库 我对调试python模块相关的代码不感兴趣,所以我对不在调试模式下构建swig自动生成的python模块很满意 以下是我的cmakelists.txt文件中的内容: set_source_files_properties(abstract.i P
set_source_files_properties(abstract.i PROPERTIES CPLUSPLUS on)
swig_add_module(${PROJECT_NAME} python abstract.i)
swig_link_libraries(${PROJECT_NAME} ${PROJECT_NAME} ${PYTHON_LIBRARIES})
嗯,把你的代码片段包装进去怎么样
set(CMAKE_TMP_BUILD_TYPE ${CMAKE_BUILD_TYPE})
set(CMAKE_BUILD_TYPE "Release")
及
?您可以告诉CMake不要在特定配置的默认生成中包含项目。例如,对于Python模块(通过SWIG将下划线添加到目标中):
我想真正的问题是MSVC由于缺少“python_d.lib”而产生链接错误 只需在SWIG接口(您的*.i)文件的标题中插入: 。。。移除
#ifdef _MSC_VER
...
#endif
当问题属于一般性问题时,仅与MSVC无关
SET_TARGET_PROPERTIES(_${PROJECT_NAME} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD_DEBUG True)
%begin %{
#ifdef _MSC_VER
#define SWIG_PYTHON_INTERPRETER_NO_DEBUG
#endif
%}
#ifdef _MSC_VER
...
#endif