c++ - Linux C++ 链接器/usr/bin/ld

标签 c++ linux linker

我使用 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/

相关文章:

c++ - Windows 防火墙 C++ API - 如何正确清理 COM 资源?

c++ - Windows API spy /劫持技术

c++ - 不同类的不可访问基面向对象编程c++

c++ - Makefile 项目 - 通过 "-j"参数防止构建失败

c - 静态链接到LAPACK

c++ - 父类和子类之间的静态变量

linux - 如何缩进文件+bash中的行

c - 如何为我的 Linux 找到可用的 POSIX 系统调用 api 列表?

linux - 我可以同时安装库的共享 .so 和静态 .a 版本吗?

c - 嵌入式系统中的内存冲突