17

我正在实现一个 OpenSSL 代码,并且已经包含了所需的头文件,但我仍然收到类似 * 的错误

未定义的引用SSL_library_init

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

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

4

4 回答 4

23

链接反对libssllibcrypto。您的LDFLAGSLDLIBS将如下所示。订单事项LDLIBS

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

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

如果您是从命令行构建的,那么您将使用以下内容。再次,订单很重要。

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

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

于 2013-12-02T07:50:15.230 回答
11

对我来说,这意味着安装

 apt install libssl1.0-dev
于 2018-07-12T00:24:50.593 回答
6

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

于 2020-04-15T14:15:52.327 回答
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)

于 2017-03-17T19:14:03.573 回答