我正在研究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源码编译的。
答案 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上都可以使用。