在我的debian系统中有一个已安装的库。 我不想对库和使用它的应用程序进行修补。 所以,我下载了库和应用程序包的源代码。然后我修补了一个库并构建了它(没有将它安装到系统中)。
现在,当我./configure
应用程序时,autotools会检测系统的库版本,而不是我的版本。
所以,我做了./configure CFLAGS=-I/home/aquirel/dev/vte-0.28.2/src LDFLAGS=-L/home/aquirel/dev/vte-0.28.2/src/.libs
还有更聪明的方法吗? 因为,使用此方法生成libtool临时包装脚本而不是可执行二进制文件。
此外,我不想在系统中安装补丁版本的库,直到我在应用程序中测试它。
答案 0 :(得分:1)
您可以使用DESTDIR安装来安装vte
包:
$ cd /home/aquirel/dev/vte-0.28.2
$ make DESTDIR=/home/aquirel/dev/test-vte install
这会将所有标头/库安装到/home/aquirel/dev/test-vte
,就好像它是/
一样。您必须以不同的方式设置configure
的路径:
$ ./configure CFLAGS=-I/home/aquirel/dev/test-vte/usr/local/include LDFLAGS=-L/home/aquirel/dev/test-vte/usr/local/lib
并为LD_LIBRARY_PATH
共享库以及应用程序测试环境设置vte
。
因为,使用此方法会生成libtool临时包装脚本而不是可执行二进制文件。
libtool
总是为链接共享库的应用程序创建包装脚本。如果您需要在Valgrind或gdb下运行您的应用程序,请参阅此处以获取有关libtool
的{{3}}选项的更多信息。