在linux编程使用openssl库时, 有时候编译文件会出现 undefined reference to SHA1 等类似错误 而SHA1在openssl/sha.h文件中已经定义,且在自己的c文件中也include了该openssl/sha.h !!
这时候,在编译的时候应该加上-lcrypto -lssl 选项,即可消除编译错误. — 例子: c文件: #include<stdio.h> int main(int argc,char **argv) { unsigned char hash[SHA_DIGEST_LENGTH]; unsigned char content[4096] = {‘\x41′}; uint32_t len = 4096; unsigned char * res = SHA1(content,len,hash); printf(“digest length = %d\n”,SHA_DIGEST_LENGTH); printf(“digest hash = %s”,hash); return 0; 编译方法: gcc -o use_sha use_sha.c -lcrypto -lssl 运行: ./use_sha 已无错误!! |
|
来自: dwlinux_gs > 《md5 and sha1》