Distutils设置在Mac OS X上生成.so而不是.dylib

时间:2015-09-24 08:42:19

标签: python macos compilation distutils

我正在尝试使用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 格式生成文件?

感谢您的回答

1 个答案:

答案 0 :(得分:2)

我正在尝试做类似的事情,对我来说这个答案有所帮助:How to create a .dylib C extension on mac os x with distutils and/or setuptools?

关键代码片段是:

f2

已添加到setup.py