我正在实现一个OpenSSL代码并且已经包含了必需的头文件,但我仍然遇到像*
这样的错误对
的未定义引用SSL_library_init
我猜这是一个链接错误而不是编译错误。
我正在使用slickeditor在Linux框中实现它。
答案 0 :(得分:11)
与libssl
和libcrypto
的关联。您的LDFLAGS
和LDLIBS
如下所示。订单对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)