繁体   English   中英

在行的未定义引用`SHA1'

[英]undefined reference to `SHA1' at line

我尝试在linux上编译一个库。 这个库使用<openssl/sha.h>库。 我已将此库包含在源文件中。 之后,我使用flag -lssl和flag -lcrypto来编译这个项目。 所以这是我的命令:

gcc -g -Wall -lssl -lcrypto -o bt_client file_a.c file_b.c

但我遇到了错误:

undefined reference to `SHA1' at line 130

第130行的代码是:

SHA1((unsigned char *) null_padded_name, 20, (unsigned char *)name_sha1);

我错过了什么吗? 请指正。 谢谢 :)

尝试这个:

gcc -g -Wall -o bt_client file_a.c file_b.c -lssl -lcrypto

如果您确定libssl.solibcrypto.so存在符号SHA1

您需要在命令行的末尾提供-lssl和-lcrypto:

gcc -g -Wall -o bt_client file_a.c file_b.c -lssl -lcrypto 

链接应用程序时,链接器会按照您在命令行上提供的顺序查找依赖项。

因此,如果在依赖于该库的源/目标文件之前添加库(如-lssl ),则链接器将找不到任何依赖项并忽略该库。

这意味着您必须始终将库放在命令行上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM