当前位置: 首页 > 面试题库 >

如何使用OpenSSL include编译.c文件?

公羊子真
2023-03-14
问题内容

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

#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/x509.h>
#include <openssl/evp.h>

在我拥有.c文件的同一文件夹中,我拥有带有所有这些文件(以及更多文件)的/
openssl,也在突触包管理器中,我看到安装了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

我要编译的文件只是一个.c文件,没有Makefile或./configure。

我已经尝试过:

env CFLAGS=-I/path/to/openssl/

并尝试再次编译,但我得到相同的错误。

我应该怎么做才能用openssl include进行编译?


问题答案:

您的包含路径表明您应该针对 系统的 OpenSSL安装进行编译。您不应该将.h文件放在包目录中-
应该从中进行选择/usr/include/openssl

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



 类似资料:
  • 问题内容: 现在,我已经在Windows 7上成功安装了Cython,我尝试使用Cython编译一些Cython代码,但是gcc使我的生活变得艰难。 使用gcc编译代码时,会抛出数十个 对 -erros的 未定义引用 ,并且我很确定src是可用的(如安装教程所述,如果缺少此文件,则会抛出 对 -errors的 未定义引用 )。 奇怪的是,使用*或-script可以很好地工作,但是当仍然在模块上工作

  • 我想在用csc编译之前更改一个.exe文件图标。 例如:我有一个*.cs文件,想把它编译成。exe文件。我正在用csc编译,而不使用Visual Studio。 我可以在VS中使用这种方法:(要在解决方案资源管理器中指定应用程序图标,请选择一个项目节点(而不是解决方案节点)。在菜单栏上,选择项目,属性。当项目设计器出现时,选择应用程序选项卡。在图标列表中,选择一个图标(.ico)文件。)但我想用类

  • 本文向大家介绍C++ 用Clang编译,包括了C++ 用Clang编译的使用技巧和注意事项,需要的朋友参考一下 示例 由于锵前端被设计为是与GCC兼容,当你交换可通过GCC编译大多数程序将编译g++通过clang++在构建脚本。如果没有-std=version给出,将使用gnu11。 习惯了MSVC的Windows用户可以cl.exe与交换clang-cl.exe。默认情况下,clang尝试与已安

  • 问题内容: 我需要使用无源软件包bigPak来编译程序-main.go。仅存在bigPak.a tnto GOPATH / pkg。 您能举一个用bigPak.a编译main.go的例子吗? 问题答案: 这简直太简单了:只需在正确的$ GOPATH / src位置生成一个伪造的bigPak包(空就可以了),( 重要的是 !)确保此合成源 在 bigPak.a 的修改时间 之前 具有修改时间。go工

  • 问题内容: 当我在Windows上使用命令编译任意一个__init__.py文件时,它具有无法解析的外部符号错误(即“ LINK:错误LNK2001:无法解析的外部符号PyInit___init__”)。 当地环境: ctest / init.py setup.py 终端打印的信息: 问题答案: 也许此行为可能被视为-package中的一个小错误(如@DavidW所指出的,存在一个未解决的问题:h