gpt4 book ai didi

C++:链接器找不到-lcrypto,但库在路径中

转载 作者:IT王子 更新时间:2023-10-29 00:01:09 27 4
gpt4 key购买 nike

我正在使用 GNU 编译 C++ 应用程序 g++ .该项目利用了 OpenSSL 库。

背景

在我的机器(64 位 CentOS 四核)上编译和链接我的文件。

g++ -g -c -L/usr/local/lib/ -L/usr/lib64/ 
-I/usr/local/include/ -I/usr/local/ssl/include/
-lcrypto mysrc1.cpp mysrc2.cpp mysrc3.cpp

g++ -L/usr/local/lib/ -L/usr/lib64/ -lcrypto
*.o -o ./myapp.out

我的应用程序使用函数 MD5包含在 libcrypto.so 中.如您所见,我指定为 g++使用 -L 搜索的目录, -I选项以及使用 -l<lib-name> 查找哪些库选项。有一些琐碎的路径,例如 /usr/local/lib当然可以省略,但我指定了它们,因为 makefile 是参数化的。

问题

我的问题是我可以成功编译我的东西(第一个命令),但是链接失败(第二个命令):

/usr/bin/ld: cannot find -lcrypto

collect2: ld returned 1 exit status

make: * [cppsims_par] Error 1

但我确实检查了文件夹和所有内容... libcrypto.so在里面/usr/lib64/ .这是怎么回事?

最佳答案

如果您尝试使用 strace 查找文件查找失败的原因,它可能会有所帮助

strace -f -e trace=file g++ -L/usr/local/lib/ -L/usr/lib64/ -lcrypto 
*.o -o ./myapp.out

关于C++:链接器找不到-lcrypto,但库在路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19406024/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com