我正在尝试使用Cython(https://www.ibisc.univ-evry.fr/~fpommereau/SNAKES/snakes-out-of-python.html)在后一个库的开发人员提供的官方教程之后为Python库创建C绑定。
图书馆的 cythonization 完美无缺。但是,在 Mac OS X 10.10.5 上调用 distutils.core.setup 创建库文件时,它会生成一个文件 .so 。但是,当我需要使用库编译示例 .c 文件时,我最终得到以下错误消息:
ld: can't link with bundle (MH_BUNDLE) only dylibs (MH_DYLIB) file './libsnk.so' for architecture x86_64
我查看了 distutils.core.setup 的文档,看看是否有任何方法可以指定生成的文件类型(在我的情况下是 .dylib ),但没有成功。
我尝试使用运行 Ubuntu 14.04.3 的虚拟机来学习本教程,并且我能够轻松地使用它。
有没有办法克服这个问题?有没有办法指定 distutils.core.setup 它必须使用 .dylib 格式生成文件?有没有办法使 distutils.core.setup 仍然使用 .so 格式生成文件?
感谢您的回答
答案 0 :(得分:2)
我正在尝试做类似的事情,对我来说这个答案有所帮助:How to create a .dylib C extension on mac os x with distutils and/or setuptools?
关键代码片段是:
f2
已添加到setup.py