我正在尝试编译一个小的.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我要编译的文件只是一个配置文件,没有Makefile或./ .c。
我已经试过了:
env CFLAGS=-I/path/to/openssl/并尝试重新编译,但我得到了相同的错误。
要使用OpenSSL includes进行编译,我应该做些什么?
发布于 2010-07-30 15:21:52
您的包含路径表明您应该针对系统的OpenSSL安装进行编译。你不应该在你的包目录中有.h文件--它应该从/usr/include/openssl中提取它们。
普通的OpenSSL包(libssl)不包含.h文件-您还需要安装开发包。它在Debian、Ubuntu和类似的发行版上被命名为libssl-dev,在CentOS、Fedora、Red和类似的发行版上被命名为libssl-devel。
发布于 2010-07-30 12:23:45
正确地使用-I旗帜给gcc。
gcc -I/path/to/openssl/ -o Opentest -lcrypto Opentest.c
-I应指向包含openssl文件夹的目录。
发布于 2013-04-25 03:01:31
使用下面的代码片段作为所引用挑战的解决方案;
yum install openssl
yum install openssl-devel在具有keepalived版本1.2.7的CentOS版本5.4上测试并证明有效。
https://stackoverflow.com/questions/3368683
复制相似问题