未明确引用' SHA1'

时间:2015-11-04 10:04:24

标签: c openssl cryptography

我在Windows 7中使用Bloodshed DevC ++。我使用DEV中的软件包安装功能安装了OpenSSL库软件包。

我从一个简单的C代码开始找到SHA。我确信这些库正确连接。但由于一些奇怪的原因,我收到链接器错误,即[链接器错误]未定义引用' SHA1'

我见过其他网站,包括SOF,但我无法找出问题的根源。我已经看到SOF上的各种帖子解决了这个问题,但没有评论解决我遇到的问题。任何帮助将受到高度赞赏。我见过有人说你需要使用-lcrypto,但我很困惑他们所指的是什么。

[编辑]

我给出的代码如下:

#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>

int main ()
{
 unsigned char ibuf[] = "compute sha1";  
 unsigned char obuf[20];  
 SHA1(ibuf,strlen(ibuf),obuf); 
 int i=0;  
 for (i = 0; i < 20; i++)  
 {  
   printf("%02x ", obuf[i]);  
 }  
 printf("\n");  
 getch();  
}   

2 个答案:

答案 0 :(得分:0)

在项目选项中,在Parameters标签中,您有三个选项框,一个指定C compiler,第二个指定C++ Compiler,第三个指定Linker

Linker框中,您需要添加-lcrypto并重建项目。

这是Dev-C ++开发环境特有的,但重复了人们在评论中告诉你的内容。

  

我认为您使用的是Dev-C ++ v5.11版本,因为流血网站上提供的最后一个版本是测试版,并且不能在我的系统上运行,即Win 10。

答案 1 :(得分:0)

感谢所有为解决问题做出贡献并提供帮助的人。特别感谢Petesh教授;)没有他的帮助,我会浪费一周时间。

我将提供如下详细信息:

  • 首先下载最新的DEVC ++,最好是5.11。确保使用正确的32/64位版本的编译器,否则会遇到链接/构建错误。

  • -lcrypto和其他库需要通过转到项目选项添加到项目中 - &gt;参数 - &gt;链接。可以通过
    添加文件 使用添加库或对象按钮。

  • 确保include目录包含openssl的链接 夹。在我的系统中,路径是&#34; C:\ Program Files
    (86)\开发-CPP \包括&#34;