【问题标题】:Autotools - set path to libraryAutotools - 设置库路径
【发布时间】:2013-12-31 14:09:13
【问题描述】:

在我的 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 临时包装脚本而不是可执行二进制文件。

而且,在我在应用程序中测试之前,我不想将补丁版本的库安装到系统中。

【问题讨论】:

    标签: linux autotools autoconf automake


    【解决方案1】:

    您可以使用DESTDIR install 安装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
    

    并为vte 共享库以及您的应用程序测试环境设置LD_LIBRARY_PATH。

    因为,使用这种方法会生成 libtool 临时包装脚本,而不是可执行二进制文件。

    libtool 始终为链接共享库的应用程序创建包装脚本。如果您需要在 Valgrind 或 gdb 下运行您的应用程序,请参阅此处了解有关 libtool 的 --mode=execute 选项的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多