在使用新工具链从源代码构建 libcrypto.a(来自 openssl 库)后,我尝试静态链接到它。但是,每当我尝试使用该库中的任何函数时,我都会不断收到“ undefined reference ”错误。我已确保包含正确的头文件。我还仔细检查了 libcrypto.a 的符号表,并确保确实定义了这些函数。
还有什么我可以做的来调试这个错误——比如从链接器中获取更多信息或检查 libcrypto.a 本身,以找出链接器为什么在指示的符号出现时吐出“ undefined reference ”错误在符号表中?
最佳答案
Undefined reference/symbol 是一个链接器错误,表示链接器无法在任何被链接的目标模块中找到指定的符号。这表示以下一项或多项:
- 指定的类/方法/函数/变量/任何未在项目中的任何地方定义。
- 符号不可访问,可能是由于访问说明符(在 C++ 中,不适用于 ANSI C)
- 引用不正确。这可能是由于拼写错误或类似问题造成的。 (不太可能)
- 调用链接器时,您忽略了在构建脚本中包含所需的库。
关于c++ - 编译时链接错误故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029565/