库文件中找不到库中的错误/库路径

时间:2018-05-11 11:40:11

标签: c linux

我正在使用

编译我的代码
gcc  -o ./sample/createUsageXMLd ./obj/createUsageXML.o  -L../../../third_party/lib/openssl-fips/2.0/LSBGCC64 -L../../../third_party/lib/curl/7.45.0/LSBGCC64  -lssl -lcrypto

但我得到错误 /

usr/bin/ld: warning: libssl.so.1.0.0, needed by ../../../third_party/lib/curl/7.45.0/LSBGCC64/libcurl.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcrypto.so.1.0.0, needed by ../../../third_party/lib/curl/7.45.0/LSBGCC64/libcurl.so, not found (try using -rpath or -rpath-link)
../../../third_party/lib/curl/7.45.0/LSBGCC64/libcurl.so: undefined reference to `SSL_CTX_set_srp_username'
../../../third_party/lib/curl/7.45.0/LSBGCC64/libcurl.so: undefined reference to `SSL_CTX_set_srp_password'
collect2: error: ld returned 1 exit status

我有以下内容 图书馆第三方文件夹

$ cd third_party/lib/openssl-fips/2.0/LSBGCC64/
$ ls
libcrypto.a  libcrypto.so  libcrypto.so.1.0.0  libssl.a  libssl.so  libssl.so.1.0.0

2 个答案:

答案 0 :(得分:0)

您还需要提供要链接的库的名称,

gcc file.c -o file -L/path/to/libs -llibname

在您的情况下,尝试在包含库的路径(使用-L完成)之后提供-lssl。请注意,前缀“lib”和后缀“.so”不是必需的。

答案 1 :(得分:0)

我尝试使用yum install安装curl。我检查了已安装curl的版本。它是7.29.0。我的编辑很成功。后来我在third_party文件夹中将curl的版本从7.45.0降级到7.29.0。现在它编译好了