c++ - 编译时链接错误故障排除

标签 c++ gcc linker openssl

在使用新工具链从源代码构建 libcrypto.a(来自 openssl 库)后,我尝试静态链接到它。但是,每当我尝试使用该库中的任何函数时,我都会不断收到“ undefined reference ”错误。我已确保包含正确的头文件。我还仔细检查了 libcrypto.a 的符号表,并确保确实定义了这些函数。

还有什么我可以做的来调试这个错误——比如从链接器中获取更多信息或检查 libcrypto.a 本身,以找出链接器为什么在指示的符号出现时吐出“ undefined reference ”错误在符号表中?

最佳答案

Undefined reference/symbol 是一个链接器错误,表示链接器无法在任何被链接的目标模块中找到指定的符号。这表示以下一项或多项:

  1. 指定的类/方法/函数/变量/任何未在项目中的任何地方定义。
  2. 符号不可访问,可能是由于访问说明符(在 C++ 中,不适用于 ANSI C)
  3. 引用不正确。这可能是由于拼写错误或类似问题造成的。 (不太可能)
  4. 调用链接器时,您忽略了在构建脚本中包含所需的库。

关于c++ - 编译时链接错误故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029565/

相关文章:

c++ - 确保在解锁之前调用互斥锁

c++ - 保证内联静态 Meyers 单例的对象生命周期,并明确放置在一个部分中?

c++ - 使用不同的 C++ 环境创建 DLL

c++ - 无法解释的内存泄漏 C++

android - 使用 c++11 std::async 在 android ndk 中无效使用不完整类型

c++ - 关于 gcc 中类型双关的编译器警告

gcc - conda install -c anaconda gcc_linux-64 未使用

ios - 链接错误 Xcode 7.2 : Framework Not Found

android - 如何将 LD_PRELOAD 与 Android 的媒体服务器一起使用?

C++ vector/链表混合