我正在尝试静态链接到libcrypto.a(来自openssl库),然后使用新的工具链从源代码构建它。但是,每当我尝试使用该库中的任何函数时,我都会收到“未定义的引用”错误。我确保包含正确的头文件。我还仔细检查了libcrypto.a的符号表,并确保确实定义了这些函数。
我还能做些什么来调试这个错误 - 比如从链接器中获取更多信息或检查libcrypto.a本身,找出当被起始符号出现时链接器吐出“未定义引用”错误的原因在符号表中?
答案 0 :(得分:1)
我看到您的帖子被标记为c++
。 OpenSSL是用C语言编写的。
你还记得吗
extern "C" {
#include <various SSL files>
}
答案 1 :(得分:1)
使用nm
从libcrypto中删除符号所以你可以看看它是否存在 - 可能不是(duh)
ssl有2个库,也许你使用的是错误的
缺少的符号
是什么答案 2 :(得分:1)
未定义的引用/符号是链接器错误,指示链接器无法在链接的任何对象模块中找到指定的符号。这表示以下一项或多项: