使用ctypes为librsync编写python包装器.我应该如何编译librsync以在所有系统上工作

Writing a python wrapper for librsync with ctypes. How should I compile librsync to work on all systems?

本文关键字:librsync 编译 工作 有系统 何编译 编写 ctypes python 包装 我应该 使用      更新时间:2023-10-16

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

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

一般来说,不可能构建一个跨平台平稳工作的C库。

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