1. ホーム
  2. c

OpenSSLをインクルードした.cファイルをコンパイルするには?

2023-10-17 05:37:30

質問

以下のインクルードを持つ小さな.cファイルをコンパイルしようとしています。

#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/x509.h>
#include <openssl/evp.h>

私が.cファイルを持っている同じフォルダに、私はすべてのこれらのファイル(およびより多くの)を持つ/opensslを持っています、また、Synapticパッケージマネージャで私はOpenSSLがインストールされているのを見ます、私はこれでコンパイルしようとしています。

gcc -o Opentest Opentest.c -lcrypto

と表示されますが、いつもエラーが出ます。

error: openssl/ssl.h: No such file or directory
error: openssl/rsa.h: No such file or directory
error: openssl/x509.h: No such file or directory
error: openssl/evp.h: No such file or directory

コンパイルしたいファイルは.cファイルのみで、Makefileや./configureを持ちません。

すでに試しました。

env CFLAGS=-I/path/to/openssl/

と入力し、再度コンパイルしてみましたが、同じエラーが出ます。

OpenSSLをインクルードしてコンパイルするためにはどうしたらよいでしょうか。

どのように解決するのですか?

インクルードパスを見ると、コンパイル時に システムの OpenSSL のインストールに対してコンパイルする必要があることを示しています。 また .h ファイルはパッケージディレクトリにないはずです。 /usr/include/openssl .

プレーンなOpenSSLパッケージ( libssl ) には含まれません。 .h ファイルは含まれません - 開発パッケージもインストールする必要があります。 このパッケージの名前は libssl-dev という名前で、Debian や Ubuntu などのディストリビューションでは libssl-devel は、CentOS、Fedora、Red Hat および同様のディストリビューションで使用できます。