基本上我想在自定义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 =”失败的环境变量?
答案 0 :(得分:0)
根据约阿希姆的评论,正确答案似乎是:
-Wl,rpath =设置运行时路径 -L设置链接路径
并回答这个问题:
不,-Wl,rpath不受系统变量的负面影响。