使用ctypes为librsync编写python包装器。我应该如何编译librsync以适用于所有系统?

时间:2014-04-16 18:08:04

标签: python c++ wrapper librsync

所以我在python中编写一个应用程序,需要librsync来实现更高效的文件传输。我希望我的librsync包装器能够工作,这样如果系统上已经安装了librsync,它将使用它,但是否则尝试使用我的应用程序附带的版本。包装器当前在Linux上运行,已经安装了librsync,我还设法将librsync编译为一个与windows上的包装器一起工作的DLL。当我在linux上将它编译成.so文件时,我可以将它移动到其他Linux系统并且它可以工作,但是当我尝试在FreeBSD上使用它时,我得到一个"无效的文件布局"错误。

我想知道,是否可以将librsync编译为可以跨平台工作的库文件? (或仅在所有* NIX系统上)如果您认为有更好的方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

通常,不,不可能构建一个可以跨平台顺利运行的C库。

某些BSD系统可以运行Linux应用程序(反之亦然),因此您可以通过这种方式构建整个系统,但需要运行Linux Python。