我使用 g++ 4.4.6 在 Redhat Linux 6 上编写了一个小应用程序。编译后报错
/usr/bin/ld: cannot find -lcrypto
我搜索了加密库并在这里找到了它们,
[root@STL-DUNKEL01 bin]# find / -name libcrypto*
/usr/lib64/libcrypto.so.0.9.8e
/usr/lib64/libcrypto.so.10
/usr/lib64/libcrypto.so.6
/usr/lib64/libcrypto.so.1.0.0
我的问题是编译错误是不是/usr/bin/ld搜索路径中没有/usr/lib64/引起的?如果是,我该如何添加?
谢谢。
最佳答案
不,您可能错误地诊断了原因。
您需要一个 libcrypto.so
来链接。这通常是指向实际库之一的符号链接(symbolic link),其 soname (libcrypto.so.??
) 将嵌入到二进制文件中。运行时只需要该库,但符号链接(symbolic link)是编译所必需的。
参见 Diego E. Pettenò: Linkers and names了解更多详情。
关于c++ - Linux C++ 链接器/usr/bin/ld,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9875772/