C 自动工具-选择要链接的库版本
我有一个链接到libssl.so的项目,我遇到了libssl中的一个bug,而lib的任何版本都无法修复它。但是在我工作的系统上,我没有根帐户,所以我自己在C 自动工具-选择要链接的库版本,c,autotools,C,Autotools,我有一个链接到libssl.so的项目,我遇到了libssl中的一个bug,而lib的任何版本都无法修复它。但是在我工作的系统上,我没有根帐户,所以我自己在$HOME/opt下构建了libssl和prerequirements 现在,当我在做: ./configure --prefix=`$HOME/opt` make 构建系统仍然使用旧的系统范围版本的libssl 我正在试图找到“黑客”自动工具与我编译的libs链接的正确方法。我不确定,但也许你也应该将新路径添加到PKG\u CONFIG\
$HOME/opt
下构建了libssl和prerequirements
现在,当我在做:
./configure --prefix=`$HOME/opt`
make
构建系统仍然使用旧的系统范围版本的libssl
我正在试图找到“黑客”自动工具与我编译的libs链接的正确方法。我不确定,但也许你也应该将新路径添加到
PKG\u CONFIG\u路径中。也就是说,如果您的项目使用PKG\u CHECK\u MODULES
查找libssl。我不确定,但也许您还应该将新路径添加到PKG\u CONFIG\u路径
。也就是说,如果您的项目使用PKG\u CHECK\u模块查找libssl。似乎:
LDFLAGS="-L$HOME/opt/lib" ../configure --prefix="$HOME/opt"
正在强制自动工具先尝试$HOME/opt/lib
。如果有人知道更好或更笼统的答案,我仍然洗耳恭听。似乎:
LDFLAGS="-L$HOME/opt/lib" ../configure --prefix="$HOME/opt"
正在强制自动工具先尝试$HOME/opt/lib
。如果有人知道更好或更笼统的答案,我仍然洗耳恭听。总有/configure LDFLAGS=-L$HOME/opt/lib CPPFLAGS=-I$HOME/opt/include
。但是该方法全局地使用来自该前缀的头,并全局地针对位于其中的lib使用链接。
许多项目提供带有
s的AC_ARG_,以允许自定义路径,例如
AC_ARG_WITH([ssl], ...)
或
与autoconf的--x-includes
和--x-libraries
但我想这是个人品味的问题
刚才注意到您不想更改文件,在这种情况下,您可以将相关库添加到LIBS
变量中,或者使用rpath:
./configure LIBS="$HOME/opt/lib/libssl.so.x.y.z"
或
始终存在/configure LDFLAGS=-L$HOME/opt/lib CPPFLAGS=-I$HOME/opt/include
。但是该方法全局地使用来自该前缀的头,并全局地针对位于其中的lib使用链接。
许多项目提供带有
s的AC_ARG_,以允许自定义路径,例如
AC_ARG_WITH([ssl], ...)
或
与autoconf的--x-includes
和--x-libraries
但我想这是个人品味的问题
刚才注意到您不想更改文件,在这种情况下,您可以将相关库添加到LIBS
变量中,或者使用rpath:
./configure LIBS="$HOME/opt/lib/libssl.so.x.y.z"
或
我不想仅仅为了解决我的特定问题而修改任何源文件。您不需要更改源文件来设置环境变量:您可以运行./configure PKG_CONFIG_PATH=$HOME/opt/lib/pkgconfig。我不想仅仅为了解决我的特定问题而修改任何源文件。您不需要更改配置用于设置环境变量的源文件:可以运行./configure PKG\u CONFIG\u PATH=$HOME/opt/lib/pkgconfig。