ここから本文です

C言語によるOpenSSLのライブラリの使い方についてです。

kom********さん

2012/7/2000:57:53

C言語によるOpenSSLのライブラリの使い方についてです。

C言語初心者です。
C言語で、OpenSSLを利用したいのですが、上手く行きません。
Googleで検索しても日本語のサイトでは同じ状況下での解決方法を見つけられませんでした。

状況は
・OpenSSLのバイナリ(Light版ではない方)をダウンロード・インストール済み
コマンドプロンプトでopenssl versionと叩くとバージョン情報が正しく表示されます。
・環境はMinGWで、コマンドプロンプト上でgcc rsa-1.c -o rsa-1.exeと叩くと、
openssl/rsa.h: No such file or directory
openssl/engine.h: No such file or directory
openssl/err.h: No such file or directory
等というエラーが出ます。もちろん、C:\OpenSSL-Win32\include\openssl内にrsa.h等のファイルはあります。
環境変数PATHはC:\OpenSSL-Win32\binを追加してあります。

上記のrsa-1.cは
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/rsa.h>
#include <openssl/engine.h>
#include <openssl/err.h>
で始まる、暗号化を行う内容です。
必要に応じて、プログラムの内容も補足します。(勉強用に他のサイト様のプログラムを使わせて頂いているので、ここにその内容を記載して良いのかわからず、とりあえず記載しませんでした。)

どうしたら、エラーを無くし、OpenSSLのライブラリを使うことができるのでしょうか。
よろしくお願いします。
なお、C言語のことや設定のこと等わかっていない部分もあり、上記の内容だと説明不足かもしれません。
なるべくすばやく補足致しますので、よろしくお願いします。

補足もう1つの方の質問の補足に書き忘れたのですが、
エラー: ld はステータス 1 で終了しました
というエラーも出ています。
どうぞよろしくお願い致します。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
4,161
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

buy********さん

リクエストマッチ

編集あり2012/7/2200:40:54

>komattarowrowさん

標準のパスにインストールしていないのが原因です。gccの -I オプションと -L オプションで includeパスと ライブラリパスを設定してやればコンパイルできるはずです。(ライブラリはMinGW用のライブラリファイルがあればOKだと思いますが、なければ、それも用意する必要あります。現在のエラーは-Iオプションでインクルードファイルのあるディレクトリを指定してやればOKのはずです。MinGWのパスの設定のしかたはネットで検索してください。)

*** MinGWの OpenSSLをインストールしてはいかがでしょうか?
「MinGW OpenSSL」でネット検索するといろいろ見つかります。

http://d.hatena.ne.jp/bellbind/20110612/1307848645

に MinGWの OpenSSLのインストールにしたがってインストールすれば、上の設定しなくてもコンパイルできるようになります。

****追記
追加のご質問にも答えましたが、標準パスにインストールしても同様のエラーになりました。

gcc -I /usr/include

と-Iオプションを追加すると、上記のエラーは発生しなくなってます。


***補足分について
リンカオプションもつける必要あります

gcc -L ライブラリのあるディレクトリ -lらいぶらり名

というオプションになります。実際やってみて、もうひとつのご質問に回答します。



よろしくお願い致します。

質問した人からのコメント

2012/7/22 07:20:02

ありがとうございます。
もしできましたら、追加の質問にもお答え頂けないでしょうか。
どうぞよろしくお願い致します。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる