OpenSSLコードを実装していて、必要なヘッダーファイルがすでに含まれていますが、それでも*のようなエラーが発生します。
SSL_library_init
への未定義の参照
コンパイルエラーではなく、リンクエラーだと思います。
私はslickeditorを使用してLinuxボックスに実装しています。
libssl
およびlibcrypto
に対してリンクします。 LDFLAGS
とLDLIBS
は次のようになります。 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
を省略できます。
私にとってこれはインストールすることを意味しました
apt install libssl1.0-dev
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)