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

1897 ワード

本稿では,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

もしあなたのコードにバグがなければ、手順も正しいなら、おめでとうございます.あなたはすでに生成しました.soファイル.python呼び出しにアクセスできます.
import ctypes as C
project = C.cdll.LoadLibrary('/path to your so/projectname.so')
project .functionname()     

よし、呼び出しに成功した~