首先,请确保您也-dev
安装了软件包。在我的 Debian 系统上,我做了:
$ sudo apt-get install libxdelta2-dev
现在您应该可以使用这些xdelta
标题了。但它们的命名可能与您使用的不同。你可以这样检查:
$ dpkg -L libxdelta2-dev | grep include
对我来说显示:
/usr/include/edsio_edsio.h
/usr/include/edsio.h
/usr/include/xd_edsio.h
/usr/include/xdelta.h
所以你可以看到在这种情况下我应该使用xdelta.h
标题,不xdelta3.h
。对您的包尝试相同的dpkg -L
命令。-dev
如果您有不同版本的xdelta*-dev
包,请检查此命令的输出:
pkg-config --list-all | grep delta
对我来说输出是空的,但如果你有类似libxdelta
输出的东西,请务必使用以下选项编译你的应用程序:
$ gcc $(pkg-config --cflags --libs libxdelta) main.c
更新 1
至于您遇到的链接问题。我猜你正在使用gcc,所以它会自动为你使用正确的链接器。问题是,您应该提供要链接程序的库名称作为链接器选项。
首先,您应该弄清楚您的实际库名称:
$ ls -1 /usr/lib | grep xdelta | grep so
你会看到这样的东西:
libxdelta.so
libxdelta.so.2
libxdelta.so.2.0.0
现在您知道了您的库名称:它是lib和.so之间的库文件名的一部分,在这种情况下,库名称是xdelta。
现在您可以使用-l
以下选项将您的程序与其链接:
$ gcc -lxdelta main.c
如果它不是标准库(如 ),您可能还需要指定 xdelta 库的路径/usr/lib/
:
$ gcc -L/your/path/to/xdelta/ -lxdelta main.c
更新 2
如何构建和使用 xdelta3。
获取来源:
cd /tmp
wget https://xdelta.googlecode.com/files/xdelta3-3.0.8.tar.xz
tar xJvf xdelta3-3.0.8.tar.xz
cd xdelta3-3.0.8/
构建和安装:
./configure
make
sudo make install
检查它是否有效:
cd examples/
make clean
make encode_decode_test
./encode_decode_test
如果一切正常,您应该有可执行文件“encode_decode_test”。它的示例使用xdelta3。现在你可以用同样的方式构建你的程序。请参阅“examples”目录中的“Makefile”文件以了解如何构建程序。请注意,现在不涉及任何库。