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

问题描述 投票:0回答:2

我正在编译我的代码

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
c linux
2个回答
0
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.