C中使用gcrypt.h的未定义引用

时间:2012-01-11 12:06:38

标签: c eclipse

我正在尝试使用库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]; 

我该如何解决?

2 个答案:

答案 0 :(得分:2)

确保您拥有最新版本的库http://www.gnupg.org/download/#libgcrypt

如果您的版本正确,请确保将库本身添加到Eclipse中的链接器设置。

这样做:

右键点击您的项目 - >属性/ C / C ++构建/设置/ GCC C ++链接器/库

你添加到库“gcrypt”(你不在它的“lib”) 并确保(如果lib不在系统路径下)添加库本身所在的路径。

答案 1 :(得分:1)

看起来您正面临链接错误(对函数的未定义引用) 你已经包含了标题" gcrypt.h"但目标文件未链接到您的主文件。 库与标题(.h)文件不同。 C库是编译对象的集合,它们通过链接器链接到目标代码。头文件在词法上由预处理器包含。

编译时,需要确保库是他们应该在的位置,并且头文件是他们应该在的位置。任何一个人都会搞砸你。确保.o文件正确链接