在Mac OS中编译和链接Python模块

时间:2018-07-03 13:45:46

标签: python c go

我正在研究Python模块。我有C源文件和一个编译的库。在Mac OS中进行链接时遇到问题,因此我遵循了Python runtime_library_dirs doesn't work on Mac中提供的说明。

这篇文章说,在Mac OS中进行链接时,应添加添加额外的链接参数。它还说应该使用install_name_tool来更改库的安装名称。

但是,使用install_name_tool时出现此错误消息:

string table not at the end of the file (can't be processed) in file:

该库是从Go源码编译的。

1 个答案:

答案 0 :(得分:0)

好。这是我以前的经历:

ext_modules = [Extension("_mypymod", ["mymod.c"],
                         extra_link_args=[],
                         depends=[],
                         libraries = [':mylib.a'],
                         library_dirs = [
                             lib_path
                         ],
                   )],

这在MacOS中不起作用。应该是这样的:

ext_modules = [Extension("_mypymod", ["mymod.c"],
                             extra_link_args=[lib_path + '/mylib.a'], #full path to the library
                             depends=[],
                       )],

在Linux和Mac上都可以使用。