Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制CMAKE在释放模式下构建SWIG模块_Cmake_Swig - Fatal编程技术网

如何强制CMAKE在释放模式下构建SWIG模块

如何强制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

有没有办法强制将cmake中swig模块的发布模式设置为发布模式下的build in release mode,而不管实际的构建类型是什么

我试图使用swig自动生成的代码构建python模块,当我在调试模式下构建应用程序时,它会抱怨python调试库

我对调试python模块相关的代码不感兴趣,所以我对不在调试模式下构建swig自动生成的python模块很满意

以下是我的cmakelists.txt文件中的内容:

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