3

バイナリを介してopensslをインストールしましたが、その正確な場所に正確なファイルがあります。しかし、コンパイル時にこのエラーに直面します。何か案が?

g++ main.cpp -I /usr/local/openssl/include/openssl/ 
In file included from main.cpp:1:0:
main.h:4:25: fatal error: openssl/evp.h: No such file or directory
compilation terminated.

アップデート:

以下のコマンドは仕事をしましたが、まだエラーに直面しています。

g++ main.cpp -I/usr/local/openssl/include -L/usr/local/openssl/lib main.cpp -lcrypto

/usr/local/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
dso_dlfcn.c:(.text+0x1d): undefined reference to `dlopen'
dso_dlfcn.c:(.text+0x33): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x3d): undefined reference to `dlclose'

何か案が?:(


解決 :

g++ main.cpp -I/usr/local/openssl/include -L/usr/local/openssl/lib main.cpp -lcrypto -ldl
4

2 に答える 2

3

への変更:

g++ main.cpp -I /usr/local/openssl/include

include ディレクティブにはサブディレクトリの名前が含まれているためです。

リンクする openssl ライブラリを追加する必要があることに注意してください。私はそれに慣れていませんが、オプション-lopensslを使用して検索するディレクトリを追加して検索するようなものです。-L完全なコマンドは次のようになります (lib ディレクトリと openssl のライブラリ名を推測しているため):

g++ main.cpp -I/usr/local/openssl/include -L/usr/local/openssl/lib main.cpp -lopenssl

于 2012-08-01T14:27:42.960 に答える
0

-I とパスの間にスペースはありません。

于 2012-08-01T14:27:41.183 に答える