对SSL_library_init和SSL_load_error_strings的未定义引用

时间:2011-04-08 09:42:26

标签: c openssl undefined-reference

我正在实现一个OpenSSL代码并且已经包含了必需的头文件,但我仍然遇到像*

这样的错误
  

SSL_library_init

的未定义引用

我猜这是一个链接错误而不是编译错误。

我正在使用slickeditor在Linux框中实现它。

4 个答案:

答案 0 :(得分:11)

libssllibcrypto的关联。您的LDFLAGSLDLIBS如下所示。订单对LDLIBS

很重要
LDFLAGS = -L/usr/local/ssl/lib
LDLIBS = -lssl -lcrypto

不要担心在库名称前面添加“lib”,或者在“so”或“a”后缀中添加“lib”。链接器将为您完成。

如果从命令行构建,则可以使用以下命令。再次,订单很重要。

gcc foo.c -o foo.exe -L/usr/local/ssl/lib -lssl -lcrypto

如果您使用的是系统的OpenSSL,则可以省略-L/usr/local/ssl/lib

答案 1 :(得分:2)

对我来说,这意味着要安装

 apt install libssl1.0-dev

答案 2 :(得分:2)

这些方法在OpenSSL 1.1中已弃用。您不需要更多使用它。您可以删除它。 OpenSSL手册中的更多信息。

答案 3 :(得分:0)

ldd libssl.so - > libcrypto.so.1.1 =>找不到

sudo ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

libcrypto.so.1.1 => /lib64/libcrypto.so.1.1(0x00007f17d46c7000)