2

我想使用openssl库中的函数对字符串进行哈希处理,我已经下载了该库并将其安装在 中SHA1,这是我的代码:/usr/include

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

int main() {

    unsigned char digest[SHA_DIGEST_LENGTH];
    char string[] = "hello world";

    SHA1((unsigned char*) &string, strlen(string), (unsigned char*) &digest);
}

它没有任何语法错误,并且可以识别 openssl/sha.h,但是当我想在 eclipse 中构建项目或从终端构建时,我收到此错误:

Hash.cpp:(.text+0x4a): undefined reference to `SHA1'
collect2: error: ld returned 1 exit status

任何帮助,将不胜感激!:)

4

1 回答 1

5

你没有正确链接openssl,如果你在 Linux 上,你应该链接crypto.

从终端

g++ -o hash hash.cpp -lcrypto

从 eclipse中,您应该打开project->Properties、转到C/C++ Build->Settings并添加cryptoLinker->Libraries文件夹中。

于 2013-05-16T08:16:44.177 回答