首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用OpenSSL includes编译.c文件?

如何用OpenSSL includes编译.c文件?
EN

Stack Overflow用户
提问于 2010-07-30 12:21:34
回答 7查看 190.1K关注 0票数 74

我正在尝试编译一个小的.c文件,它包含以下内容:

代码语言:javascript
复制
#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/x509.h>
#include <openssl/evp.h>

在我有.c文件的同一文件夹中,我有一个包含所有这些文件(以及更多文件)的/openssl,同样在synaptic包管理器中,我看到安装了OpenSSL,我正在尝试使用以下命令进行编译:

代码语言:javascript
复制
gcc -o Opentest Opentest.c -lcrypto

但我总是会得到错误:

代码语言:javascript
复制
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。

我已经试过了:

代码语言:javascript
复制
env CFLAGS=-I/path/to/openssl/

并尝试重新编译,但我得到了相同的错误。

要使用OpenSSL includes进行编译,我应该做些什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-07-30 15:21:52

您的包含路径表明您应该针对系统的OpenSSL安装进行编译。你不应该在你的包目录中有.h文件--它应该从/usr/include/openssl中提取它们。

普通的OpenSSL包(libssl)不包含.h文件-您还需要安装开发包。它在Debian、Ubuntu和类似的发行版上被命名为libssl-dev,在CentOS、Fedora、Red和类似的发行版上被命名为libssl-devel

票数 113
EN

Stack Overflow用户

发布于 2010-07-30 12:23:45

正确地使用-I旗帜给gcc。

gcc -I/path/to/openssl/ -o Opentest -lcrypto Opentest.c

-I应指向包含openssl文件夹的目录。

票数 12
EN

Stack Overflow用户

发布于 2013-04-25 03:01:31

使用下面的代码片段作为所引用挑战的解决方案;

代码语言:javascript
复制
yum install openssl
yum install openssl-devel

在具有keepalived版本1.2.7的CentOS版本5.4上测试并证明有效。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3368683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档