“-Wl,-rpath =”怎么可能找不到库?

时间:2015-05-06 14:24:19

标签: c

基本上我想在自定义dicrectory中使用库:

编译器参数:

gcc -o conftest -Wl,-rpath=/MYPATH/ssl/lib -O2 -Wno-system-headers  -I/MYPATH/ssl//include -I/MYPATH/ssl//include/openssl  -L/MYPATH/ssl//lib conftest.c -lssl  -lcrypto -lrt

编译器错误(许多中的一个):

dso_dlfcn.c:(.text+0x19): undefined reference to `dlopen'

(这个例子来自一个失败的curl config.log文件,但问题是一般性的)

我已经仔细检查了/MYPATH/ssl/lib中存在libssl.a和libcrypto.a,如上所示,-Wl,rpath=选项被正确设置为编译器参数。

尽管使用“-Wl,rpath”,gcc怎么可能找不到库?据我所知(到目前为止),“-Wl,rpath”应该永远不会失败,无论任何环境变量(如LD_LIBRARY_PATH等)或文件。

是否有任何可能导致“-Wl,-rpath =”失败的环境变量?

1 个答案:

答案 0 :(得分:0)

根据约阿希姆的评论,正确答案似乎是:

-Wl,rpath =设置运行时路径 -L设置链接路径

并回答这个问题:

不,-Wl,rpath不受系统变量的负面影响。