您的位置:首页 > 运维架构 > Linux

how to call c++ function in python coding in linux?

2017-04-10 11:25 357 查看
本文想要讲清楚的是在linux系统上,在python coding 时候调用c++ function。

对于要被python调用的c++ function的coding,并没有太大特殊,只是在function定义的时候,前面加上:

extern "C" void functionname(...)
{ ...}


接下来,就是编译c++ function,生成.so文件,供python 调用。

这里提供cmake方式的编译。在当前工程目录下新建CMakeLists.txt,如下例子(假设函数仅使用opencv库)供参考,要注意的是,projectname不要和functionname重复。

set(OpenCV_DIR "/home/westwell/opencv-2.4.13/release")
cmake_minimum_required(VERSION 2.8)
project( projectname)
find_package( OpenCV REQUIRED )
find_package(PythonInterp)
find_package(PythonLibs)
include_directories( ${OpenCV_INCLUDE_DIRS}
(path to your project) )
#add_executable( projectname functionname.cpp )
PYTHON_ADD_MODULE(projectname functionname.cpp)
target_link_libraries( projectname ${OpenCV_LIBS} )


完成之后,cd 到你的工程目录下,

cd (path to your project)
cmake .
make


如果你的代码没有bug,步骤也都正确了,那么恭喜你,你已经生成 了 .so 文件。可以进入python调用了。

import ctypes as C
project = C.cdll.LoadLibrary('/path to your so/projectname.so')
project .functionname()


好啦,已经成功调用了~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: