我正在尝试使用库gcrypt.h,但显示此错误:
对'gcry_md_get_algo_dlen'的未定义引用
代码是:
int algo = GCRY_MD_SHA1;
unsigned int hash_len = gcry_md_get_algo_dlen(algo);
unsigned char hash[hash_len];
我该如何解决?
答案 0 :(得分:2)
确保您拥有最新版本的库http://www.gnupg.org/download/#libgcrypt
如果您的版本正确,请确保将库本身添加到Eclipse中的链接器设置。
这样做:
右键点击您的项目 - >属性/ C / C ++构建/设置/ GCC C ++链接器/库
你添加到库“gcrypt”(你不在它的“lib”) 并确保(如果lib不在系统路径下)添加库本身所在的路径。
答案 1 :(得分:1)
看起来您正面临链接错误(对函数的未定义引用) 你已经包含了标题" gcrypt.h"但目标文件未链接到您的主文件。 库与标题(.h)文件不同。 C库是编译对象的集合,它们通过链接器链接到目标代码。头文件在词法上由预处理器包含。
编译时,需要确保库是他们应该在的位置,并且头文件是他们应该在的位置。任何一个人都会搞砸你。确保.o文件正确链接