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

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非常糟糕和扯淡的地方,并且qtcreater具有很多的不稳定, 大家工作中一定注意备份,防止数据丢失。

如何添加库和INCLUDEPATH路径?
有两种方法添加库和头文件:
1、手动添加:
修改.pro文件。
(1).pro用编辑器打开文件
(2)在INCLUDEPATH +=部分添加库的目录
(3)去 Build > Run qmake
(4)检查是否包含头文件
(5)去构建你的代码
2、自动添加:
(1)在“项目”窗格中,打开项目文件(.pro)。
(2)在代码编辑器中右键单击以打开上下文菜单,然后选择添加库….
(3)弹出界面,选择导入外界库,需要支持的平台(win,linux,mac)然后下一步,选择你要添加的库的位置,选择了lib路径后,include路径会自动添加进来。
(4)点击完成之后,.pro文件自动被修改, 以下内容会自动添加到.pro文件;

    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../openssl/lib/ -llibeay32

    else:unix: LIBS += -L$$PWD/../../../openssl/lib/ -llibeay32

    INCLUDEPATH += $$PWD/../../../openssl/include

    DEPENDPATH += $$PWD/../../../openssl/include    

(5)去 Build > Run qmake
如果不执行qmake,去编译当然编译器依然会给你那个熟悉的错误:
error: C1083: 无法打开包括文件: “openssl/pkcs12.h”: No such file or directory.
(6)添加完头文件,就去构建代码。

关于INCLUDEPATH?
如果您正在使用qmake,标准的Qt构建系统,只需.pro在qmake变量参考中记录的文件中添加一行:
INCLUDEPATH +=
必须是绝对路径,但是您可以.pro通过使用$$PWD指向包含.pro文件的文件夹来避免文件中操作系统,主机或用户特定的条目
另外根据习惯,windows底下直接写路径即可,如果路径中有空格用引号将整个路径括起来,
linux下面会用-L”c:/xx”,即会用-L标明路径。

你可能感兴趣的:(linux,&,linux,C++开发)