我终于想通了。解决方案包括两个部分。首先,setup.py需要使用extra_link_args来告诉链接器向编译后的模块添加正确的rpath:
if platform.system() == 'Darwin': extra_link_args.append('-Wl,-rpath,'+lib_path)
其中lib_path是安装库的目录。其次,要链接的所有库都 必须 具有以“ @ rpath /”开头的安装名称。例如,如果一个库名为“
libFoo.dylib”,则其安装名称应为“ @ rpath / libFoo.dylib”。您可以使用“ install_name_tool
-id”来更改库的安装名称。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)