Python中文
首页
教程
问答
标签
搜索
登录
注册
用C++ ++ python进行包装问题
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<>我试图包装一个依赖于另一个C++文件的C++文件(全局.cpp)通过使用SWIG。我能够让第一个很好地工作,但是这种嵌套的依赖似乎引起了一个问题。以下是我的设置:</p> <h2>位置。我</h2> <pre><code>%module position %include global.i %{ #include "pos.h" %} %include "pos.h" %include "global.h" ... (functions declared) </code></pre> <h2>在位置.cpp在</h2> ^{pr2}$ <h2>位置。h</h2> <p>原型</p> <p>我就这样做。在</p> <pre><code>swig -c++ -python -builtin position.i g++ -O2 -fPIC -c position.cpp g++ -O2 -fPIC -c -I/Users/aaron/anaconda/include/python3.5m position_wrap.cxx </code></pre> <p>我有两个目标文件,然后用</p> <pre><code>g++ -dynamiclib -lpython position.o global.o position_wrap.o -o _position.so </code></pre> <p>我试过很多不同的方法来做这件事,在仔细研读后,我已经完全窒息了。在</p> <p>我有个错误</p> <pre><code> ... "_PyUnicode_FromFormat", referenced from: SwigPyObject_repr(SwigPyObject*) in position_wrap.o SwigPyPacked_repr(SwigPyPacked*) in position_wrap.o SwigPyPacked_str(SwigPyPacked*) in position_wrap.o "_PyUnicode_FromString", referenced from: _PyInit__position in position_wrap.o SWIG_Python_DestroyModule(_object*) in position_wrap.o SwigPyPacked_str(SwigPyPacked*) in position_wrap.o "_Py_DecRef", referenced from: SwigPyObject_repr(SwigPyObject*) in position_wrap.o "__PyObject_New", referenced from: _PyInit__position in position_wrap.o ... ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) </code></pre> <p>与编译。我尝试了不同的链接器标志,方法是转到路径<code>python3-config --ldflags</code>状态。我添加了<code>-std=libstdc++</code>标志。我曾经以某种方式得到了要生成的模块,但在导入到python时面临的问题是:</p> <pre><code>ImportError: dlopen(/Users/aaron/Desktop/swigdPython/src/_position.cpython-35m-darwin.so, 2): Symbol not found: __Z10e_to_ed Referenced from: /Users/aaron/Desktop/swigdPython/src/_position.cpython-35m-darwin.so Expected in: dynamic lookup" </code></pre> <p>我不知道该如何链接这些文件,希望这里有人能有所了解。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您应该在link命令行最后指定库:</p> <pre><code>g++ -dynamiclib position.o global.o position_wrap.o -o _position.so -lpython </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
pyVISA GPIB GET(组执行触发器)
9 回答
Pyvisa IOerror设备:Korad K3005d电源
4 回答
PyVISA mac OS X(山狮)安捷伦33250
6 回答
Pyvisa Pyusb无法加载大于1 MB的序列
2 回答
pyVisa RS232太慢
10 回答
PyVISA RS232超时错误(安捷伦电源)
9 回答
PyVISA SCPI命令和查询(值更新问题)
4 回答
PyVISA SerialInstrument需要硬重置才能在故障后连接
8 回答
pyvisa,未找到函数viOpen
5 回答
pyVISA:以编程方式将仪器返回到本地模式
4 回答
pyvisa:接口类型是什么意思?
7 回答
pyvisa.errors.VisaIOError:VI_ERROR_TMO(1073807339):操作完成前超时
2 回答
PyVisa“更复杂的示例”根本不运行Keithley 2400不理解的命令
6 回答
PyVisapy后端
4 回答
PyVISA不能写入超过7F的十六进制字符
2 回答
PYVISA中的ENUM模块和cStringIO模块
8 回答
PyVisa代码的图形用户界面
1 回答
Pyvisa使用按键电源超时
10 回答
PyVISA和Kethley 2701只能从一个通道获取结果
7 回答
PyVisa和Printing New D
3 回答