使用Cython将metis链接到封装的C++模块
Linking metis to wrapped C++ module using Cython
在编译Cython源文件期间,我试图链接metis库,但遇到了困难,因为我在编译的共享对象文件中获得了未定义的符号。
我想知道是否有人有使用distutils链接metis等外部库的经验?更好的选择是使用makefile吗?
我所做的:
将目录添加到extra_link_args 中的libmetis.a
我找到了这个问题的解决方案,即我使用makefile进行编译,而不是使用distutils,这使得链接更加容易。
您可能需要
python setup.py build_clib
之前
python setup.py build_ext --inplace
如果这没有帮助,那么未定义的符号是_Py_ZeroStruct
吗?这可能是因为您执行了python setup.py build_ext
并使用了python 3。为此,您需要python3
命令。
希望这能有所帮助。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 将可变参数函数的参数封装在类实例中
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 封装C++模板
- 将 RTOS 队列对象封装在仅具有静态分配的 IQueue 自定义接口中
- 从封装在对象中的函数 C++ 返回时为空的列表
- 当要访问的对象被多次封装时,如何正确使用setter
- 在为嵌套类定义行外友元时,我真的必须打破封装吗?
- 如何在类中封装C/C++套接字发送和接收函数?
- 如何使用吸气剂方法实现C++封装
- 封装 std::map 以允许迭代,但没有直接密钥访问?
- 类C++友元函数无法访问封装的类
- 当从成员类调用封装的std::begin时,程序崩溃
- 从私有成员类中断封装派生的模板类
- C++实用程序,用于将长开关语句转换为封装开关案例阶梯的简洁函数调用
- 如何修复列表视图中的错误?,封装控件时无法选择任何项
- 我们可以使用命名空间实现封装吗?
- 封装 std::vector 以允许迭代,但不允许其他内容
- lambda[=] 上的复制值被另一个封装的 lambda[&] 阻止
- 如何使用提升范围将自定义迭代器封装在函数中