C 自动工具-选择要链接的库版本

C 自动工具-选择要链接的库版本,c,autotools,C,Autotools,我有一个链接到libssl.so的项目,我遇到了libssl中的一个bug,而lib的任何版本都无法修复它。但是在我工作的系统上,我没有根帐户,所以我自己在$HOME/opt下构建了libssl和prerequirements 现在,当我在做: ./configure --prefix=`$HOME/opt` make 构建系统仍然使用旧的系统范围版本的libssl 我正在试图找到“黑客”自动工具与我编译的libs链接的正确方法。我不确定,但也许你也应该将新路径添加到PKG\u CONFIG\

我有一个链接到libssl.so的项目,我遇到了libssl中的一个bug,而lib的任何版本都无法修复它。但是在我工作的系统上,我没有根帐户,所以我自己在
$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。