C++:链接器找不到 -lcrypto,但库在路径中
C++: linker cannot find -lcrypto, but the library is in the path
我正在使用GNU g++
编译一个C++应用程序。该项目利用了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
我的应用程序使用包含在libcrypto.so
中的函数MD5
。如您所见,我指定g++
目录,使用-L
,-I
选项以及使用-l<lib-name>
选项查找哪些库。当然,有一些像/usr/local/lib
这样的琐碎路径可以省略,但我指定了它们,因为 makefile 是参数化的。
问题所在
我的问题是我可以成功编译我的东西(第一个命令),但链接失败(第二个命令):
/usr/bin/ld: 找不到 -lcrypto
收集2:LD 返回 1 个退出状态
制造: * [cppsims_par] 错误 1
但我确实检查了文件夹和所有内容... libcrypto.so
在/usr/lib64/
里面.这是怎么回事?
如果您尝试 strace 查找文件查找失败的原因,可能会有所帮助
strace -f -e trace=file g++ -L/usr/local/lib/ -L/usr/lib64/ -lcrypto
*.o -o ./myapp.out
我确实发现了问题,它与这个问题有关:ld 找不到现有的库
实际上我没有符号链接libcrypto.so
编译器无法找到库......
我有相关问题,并在检查跟踪后解决了它。
我有
-L<my/path/to/lib> -llib_some_library
当它应该在
-L<my/path/to/lib> -lsome_library
相关文章:
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- C++A*算法并不总是在路径中具有目标节点
- 从函数角度看ID到文件路径的内部与外部映射
- boost xml parsingl将xml的路径作为变量发送
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何使用cppcheck处理半相对包含路径
- 在C++中设置基于操作系统的文件路径
- 基于编译器选项的编译二进制路径
- 按边长度递归搜索图中所有可行路径
- 使用变量值作为 PlaySound 中的路径
- 如何转换真实路径 CString c++
- 从 GUID 获取 USB 卷路径
- 查找 GCD:并非所有控制路径都返回值
- C++17 文件系统::remove_all 带有通配符路径
- 在带有尾部斜杠的路径上返回 std::filesystem::create_directories() 的值
- 获取当前正在运行的 exe 名称(不是路径)
- 如何从 Skia 路径几何体中获取网格?
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- C++:链接器找不到 -lcrypto,但库在路径中