[英]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.so
或libcrypto.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.