我正在使用 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++
搜索的目录以及使用该选项查找哪些库。当然,有一些简单的路径可以省略,但我指定了它们,因为 makefile 是参数化的。-L
-I
-l<lib-name>
/usr/local/lib
问题
我的问题是我可以成功编译我的东西(第一个命令),但链接失败(第二个命令):
/usr/bin/ld: 找不到 -lcrypto
collect2: ld 返回 1 个退出状态
make: * [cppsims_par] 错误 1
但我确实检查了文件夹,一切……libcrypto.so
都在里面/usr/lib64/
。到底是怎么回事?