background:
g++编译有时满足不了要求,换用cmake编译。
1、定义头文件,hello.h
#ifndef HELLO_H
#define HELLO_H
#include <stdio.h>
void hello();
#endif
2、定义c++文件,hello.cpp
#include<stdio.h>
#include"hello.h"
extern "C"
void hello()
{
printf("hello");
}
3、定义CMakeList.txt
cmake_minimum_required (VERSION 2.6)
project( hello )
add_library(hello SHARED ${PROJECT_SOURCE_DIR}/hello.cpp)
install(TARGETS hello LIBRARY DESTINATION lib)
INSTALL(FILES ${PROJECT_SOURCE_DIR}/hello.h
DESTINATION include)
4、编译,当前文件夹下中端输入:
mkdir build
cd build
cmake ..
make
5、编译完成后,build文件夹中出现libhello.so动态链接库。编写python文件
from ctypes import *
# #loaddll and get the function object
# export LD_LIBRARY_PATH=/home/ubuntu/test/cmake_test/build:$LD_LIBRARY_PATH
dll= cdll.LoadLibrary('../cmake_test/build/libhello.so') # .so所在的文件位置
dll.hello()
下一篇,opencv传递图片