gpt4 book ai didi

c++ - `make install` 使用 CMake + SWIG + Python

转载 作者:太空狗 更新时间:2023-10-29 20:12:47 25 4
gpt4 key购买 nike

我正在编写一个 C++ 库,它可以在 Mac 和 Linux 上从 C++ 和 Python 使用。所以我决定在我的项目中使用 CMake 和 SWIG。

正如 SWIG 2.0 文档中所述,SWIG 和 CMake 的组合在我的 Mac 上也能正常工作。 http://www.swig.org/Doc2.0/SWIGDocumentation.html#Introduction_build_system

但是我有一个关于make install的问题。

输入cmake .make后,成功生成了_example.so。但是 make install 不起作用,因为自动生成的 Makefile 没有 install 目标。我想知道如何在 Makefile 中添加 install 目标。我希望将 _example.so 安装在每个系统的 site-packages 目录下。

如果有人能告诉我如何修改上面链接中编写的 CMake 示例,我将不胜感激。

最佳答案

find_package(SWIG REQUIRED)
find_package(PythonLibs REQUIRED)

include(${SWIG_USE_FILE})
set(CMAKE_SWIG_FLAGS "")
include_directories(${PYTHON_INCLUDE_DIRS})

set_source_files_properties(target.i PROPERTIES CPLUSPLUS ON)
set_source_files_properties(target.i PROPERTIES SWIG_FLAGS "-includeall")
swig_add_module(target python target.i ${SOURCES})
swig_link_libraries(target ${PYTHON_LIBRARIES})

execute_process(COMMAND python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
install(TARGETS _target DESTINATION ${PYTHON_SITE_PACKAGES})
install(FILES ${CMAKE_BINARY_DIR}/src/target.py DESTINATION ${PYTHON_SITE_PACKAGES})

关于c++ - `make install` 使用 CMake + SWIG + Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com