python 调用C++动态库所遇到的undefined symbol ***
来源:互联网 发布:光荣使命和巨人网络 编辑:程序博客网 时间:2024/06/07 22:50
因为算法效率问题所以要在python中调用C,
先写一个C函数:
cc.cpp:
int ts(int a, int b) {
return a * b;
}
编译 :
g++ -c -fPIC cc.cpp
g++ -shared cc.o -o libcc.so
然后在python中调用ts函数:
ts.py:
from ctypes import *
import os www.2cto.com
libcc = cdll.LoadLibrary(os.getcwd() + '/libcc.so')
print libcc.ts(2,3)
运行:
python ts.py
出错:******can not find symbol ts
谷歌了一下,发现是因为c++编译后的文件会把函数名改名(为了实现重载功能)
用extern "C"声明后,就会使用c的方式进行编译,编译后的文件中仍然是定义的函数名
所以只要讲c库中的代码改为:
extern "C"{
int ts(int, int);
}
int ts(int a, int b) {
return a * b;
}
本文章转自https://www.2cto.com/kf/201302/189503.html
阅读全文
0 0
- python 调用C++动态库所遇到的undefined symbol ***
- python 调用C 动态库 提示can not find symbol
- 动态库编译:.so: undefined symbol
- so库又一次遇到 undefined symbol------ldd, nm, c++filt命令大显身手
- linux动态库so调用外部so,运行时出现undefined symbol
- Go语言调用c动态库遇到的一些问题
- python 调用 C 动态库
- python 调用 C 动态库
- c调用python遇到的那些坑
- C++ 动态加载库链接传入的类变量中的接口报undefined symbol问题
- `menu_proxy_module_load': python: undefined symbol: menu_proxy_module_load
- python:undefined symbol: PyUnicodeUCS*问题
- JNI开发-加载动态库错误之undefined symbol:
- ctypes: 使用python调用C编写的动态链接库
- Python调用C/C++动态链接库的方法详解
- Python调用C/C++动态链接库
- Linux下Python调用C动态库
- Mac下Python调用C动态库
- 菜鸟学习历程【19】进程通信(1)
- LibSVM学习详细说明
- HDU 1253
- Telephone Lines POJ
- Angularjs自定义过滤器
- python 调用C++动态库所遇到的undefined symbol ***
- 对于 Handler MessageQueue Message Looper的理解
- xshell连不上阿里云服务器
- 解释器模式
- AI的道德与伦理
- Web 应用程序中 Resource Bundle 技术概述
- unable to access android sdk add-on list
- Web 开发中很实用的10个效果
- tftpd32.exe的安装