我使用Linux生成.so库,以便在我的Python项目中使用。这些库是动态链接的,this post中也有说明。
如果他不使用与我相同的操作系统,则需要在用户计算机上重新编译。所以我的问题是,我该如何简化呢?我想我需要让Cython静态链接我的库,但我在网上找到的所有这些都没有用。
我使用python-distutils生成.so。因此,distutils解决方案会很好,但任何其他建议也会有所帮助。我用这个脚本:
cmdclass = {}
ext_modules = []
ext_modules += [
Extension("signalFunctions", ["signalFunctions.pyx"],
include_dirs=[numpy.get_include()],
extra_compile_args=["-static", "-static-libgcc"]),
]
cmdclass.update({'build_ext': build_ext})
setup(
name='AutomaticHacker',
cmdclass=cmdclass,
ext_modules=ext_modules,
)
我已经尝试了extra_link_args=["fPIC"]
和extra_link_args=["-static" "-static-libgcc"]
这些无效。