我对Qt 5和Qt Creator还是陌生的。我创建了一个名为D20Controls的库项目。我有D20Controls.lib文件。在我的项目中,我想使用lib D20Controls的类。因此,我右键单击我的项目,然后执行“添加库...”。选择“外部库”,然后浏览至D20Controls.Lib文件。现在,所有内容似乎都已正确添加到我的.pro文件中。

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/release/ -lD20Controls
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug/ -lD20Controls

INCLUDEPATH += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug
DEPENDPATH += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug

win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/release/D20Controls.lib
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../../build-D20Controls-Desktop_Qt_5_1_1_MSVC2012_64bit-Debug/debug/D20Controls.lib

但是当我想在项目中使用它时#include <D20Controls>或其中的任何.h文件,我无法编译如下错误:
... main.cpp:4:错误:C1083:无法打开包含文件:'D20Controls':没有此类文件或目录

我该如何使用我的库? (我尝试过静态链接和动态链接)

我想念什么?

最佳答案

解决此类问题的步骤:

  • 在文件系统中找到D20Controls.h。如果有多个,请确定要包含的是正确的一个。
  • 查找一个实际执行的编译命令(例如其中一个包含-o main.omain.cpp的命令),虽然有多个,但是通常在一个项目中它们应该具有相同的-I标志。如果从Qt Creator进行编译,请查看屏幕底部的“编译输出”标签。如果从命令行编译,请向上滚动甚至复制粘贴到某个编辑器。
  • 查看编译命令上是否有-I...something...选项,该选项与正确的包含文件的位置匹配。
  • 如果不是,请在.pro文件中添加或修复它,然后重新运行qmake,进行构建。


  • 以上适用于查找头文件,并且-I标志用于编译命令,该命令指定包含路径。如果是链接器发出错误消息(通常在这种情况下发生,则在修复包含问题后会发生这种情况),然后找到链接命令(其中包含一堆.o文件,以及类似-o final-program-name的东西),然后查找-L选项,该选项指定了链接路径。

    关于c++ - Qt #include不适用于外部库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19784070/

    10-09 12:48