使用 libssl 编译不起作用

标签 c gcc openssl libssl

我有一个非常简单的代码:

#include <openssl/sha.h>

int main() {
    SHA_CTX sha1;
    SHA_Init(&sha1);
}

我已经安装了 libssl-devlibcrypto++-dev:

但是,我使用以下命令构建失败:

$ gcc -lcrypto -lssl main.c
/tmp/ccfnCAxT.o: In function `main':
main.c:(.text+0x1f): undefined reference to `SHA1_Init'
collect2: error: ld returned 1 exit status
$
$ gcc -lssl main.c
/tmp/ccfnCAxT.o: In function `main':
main.c:(.text+0x1f): undefined reference to `SHA1_Init'
collect2: error: ld returned 1 exit status

平台:Ubuntu 16.04

最佳答案

-lssl不需要,-lcrypto就够了,而且必须在最后:

gcc -o main main.c -lcrypto

(或者您希望在 -o 之后调用程序的任何内容)

关于使用 libssl 编译不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518881/

相关文章:

c - 我怎样才能摆脱 QAC 警告?

ruby-on-rails - 问题 : Could not load OpenSSL

c - 想要根据 C 程序中的数据长度动态分配内存

C将文件读入二维数组

c - 在 XC8 V1.44 中对文字进行按位 OR 运算时出现间歇性转换警告

c++ - 相当于 m256_f32 的 GCC

linux - gcc 的参数文件

OpenSSL 和 MS CryptoAPI : different digital signatures

c++ - 如何让 OpenSSL 服务器使用阻塞 BIO 干净地关闭?

c - 通用函数宏和如何抑制特定的 GCC 警告 : "Pointer Type Mismatch in Conditional Expression"