QtCreater添加外部库编译error: C1083: 无法打开包括文件: “openssl/pkcs12.h”: No such file or directory原因分析

本文详细介绍了在QtCreator中遇到编译错误C1083,无法打开openssl/pkcs12.h文件的问题。问题关键在于缺少运行qmake以更新Makefile。解决方案包括手动和自动添加库及INCLUDEPATH,确保每次修改.pro文件后执行qmake。同时,文章提醒用户注意QtCreator的不稳定性,建议经常备份项目以防止数据丢失。
摘要由CSDN通过智能技术生成

QtCreater编译找不到文件的原因解析
QtCreater中,要添加某一个库或库文件,当一切条件都成立的条件下且文件都存在,添加路径正确:
添加了头文件:#include “openssl/asn1.h”
修改了.pro文件, 给INCLUDEPATH += F:/openssl/include.
然后去编译,发现仍然见鬼的编译不通过:
error: C1083: 无法打开包括文件: “openssl/pkcs12.h”: No such file or directory.
然后任凭怎么修改都不行的。折腾了半天后终于明白了:
你必须运行qmake(build-> run qmake)来验证pro文件中的更改。
为什么?qmake做什么?
qmake将.pro文件编译成一个Makefile,它告诉你的编译器套件(例如gcc,clang或msvc)如何编译这个项目。
就是因为这个原因,所以每次凡是有.pro文件的修改,那么必须运行qmake重新生成makefile文件才能让编译器重新编译,否则,你改变了.pro文件,然后去编译,
发现编译仍然通过了,这就有点见鬼了,去编译输出看一下,提示:
16:14:16: 进程”C:\Qt\Qt5.6.0\Tools\QtCreator\bin\jom.exe”正常退出。
16:14:16: 配置没有改变, 跳过 qmake 步骤。
16:14:16: 正在启动 “C:\Qt\Qt5.6.0\Tools\QtCreator\bin\jom.exe”
之类的扯淡问题。所以这也是qtCreater非常糟糕和扯淡的地方,并且qt

### 回答1: 这个错误提示表示在编译无法找到名为openssl/chacha.h的文件或目录。这可能是由于以下几个原因引起的: 1. OpenSSL没有正确安装:确保您的系统上已经正确安装了OpenSSL。你可以通过运行命令`openssl version`来检查OpenSSL的存在与否。如果没有安装,你可以通过包管理器来安装它,例如对于Ubuntu,可以运行`sudo apt-get install libssl-dev`。 2. OpenSSL文件没有正确设置:编译无法找到名为chacha.h的头文件,这可能是由于头文件路径没有正确设置导致的。你可以在编译时使用`-I`选项来指定头文件的路径,例如`-I/usr/include/openssl`。 3. 版本不兼容:检查你使用的OpenSSL版本与代码中使用的版本是否相容。有些功能或头文件可能在不同版本之间发生了变化或取消。如果不相容,你需要更新你的代码以适应当前版本的OpenSSL。 总结:以上是关于错误"error: openssl/chacha.h: no such file or directory"的可能解决方案,包括安装或更新OpenSSL,设置正确的头文件路径,以及检查OpenSSL版本兼容性。 ### 回答2: 出现这个错误的原因是因为编译程序在寻找 `openssl/chacha.h` 头文件时没有找到。 首先,我们需要确保已经正确安装了 OpenSSL 。如果没有安装,可以通过以下命令在 Linux 系统上安装 OpenSSL: ``` sudo apt-get install libssl-dev ``` 如果是在 Windows 系统上使用 MSYS2 或者 MinGW 环境,可以使用以下命令安装 OpenSSL: ``` pacman -S mingw-w64-x86_64-openssl ``` 如果已经安装了 OpenSSL,可能是由于头文件路径没有正确配置,我们需要添加正确的头文件路径。 可以尝试在编译程序的命令中添加 `-I` 选项,指定 OpenSSL文件的路径。例如,在 Linux 系统中可以使用以下命令编译程序: ``` gcc -o output_file source.c -I/usr/include/openssl ``` 在 Windows 系统中可以使用以下命令编译程序: ``` gcc -o output_file source.c -I/path/to/openssl/include ``` 请注意,`/path/to/openssl/include` 需要替换为实际的 OpenSSL文件路径。 如果以上方法仍然无法解决问题,可能需要进一步检查 OpenSSL 的安装和配置情况,确保 OpenSSL 和头文件都正确安装并且路径设置正确。 ### 回答3: "error: openssl/chacha.h: 没有该文件或目录" 这个错误是由于缺少 OpenSSL 中的 chacha.h 文件导致的。 OpenSSL 是一个开放源代码的密码,用于提供安全通信的加密和解密功能。ChaCha20 是一种具有高安全性和高速度的对称加密算法。在使用 OpenSSL 进行开发时,需要使用到 chacha.h 头文件来引入 ChaCha20 算法的相关函数和定义。 要解决这个错误,可以按照以下步骤操作: 1. 确保已经正确安装了 OpenSSL 。可以通过命令行输入 `openssl version` 来检查 OpenSSL 的版本信息。如果提示未找到命令,则可能 OpenSSL 没有正确安装或正在使用的是其他加密。 2. 检查开发环境中是否已经包含了 OpenSSL 的安装路径。可以通过设置环境变量 `OPENSSL_INCLUDE_DIR` 来指定 OpenSSL 的包含文件目录,例如:`export OPENSSL_INCLUDE_DIR=/usr/local/ssl/include`。如果已经设置了该环境变量,可以跳过这一步。 3. 确认是否存在 chacha.h 文件。在 OpenSSL 的安装目录下,应该可以找到 chacha.h 文件。例如,在默认的安装目录 `/usr/local/ssl/include/openssl` 下应该存在 chacha.h 文件。 4. 如果确实不存在 chacha.h 文件,可能是因为 OpenSSL 的版本较旧,不包含此文件。可以尝试更新 OpenSSL 版本,或者使用其他适配的加密算法。 总之,解决 "error: openssl/chacha.h: 没有该文件或目录" 错误,需要确保正确安装了 OpenSSL ,并配置了正确的环境变量和路径,以及使用了支持 ChaCha20 算法的 OpenSSL 版本。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值