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选项找到它。完整的命令将类似于(我猜测 openssl 的 lib 目录和库名称):

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 回答