Qt #include 无法使用外部库
Qt #include not working with External Library
我对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文件,我无法编译错误,例如:...主.cpp:4: 错误: C1083: 无法打开包含文件:"D20控件": 没有此类文件或目录
我如何使用我的库?(我尝试过静态链接和动态链接)
我错过了什么?
解决此类问题的步骤:
-
在文件系统中查找
D20Controls.h
。如果有多个,请确定要包含的正确选项。 -
找到一个实际执行的编译命令(例如,一个包含
-o main.o
和main.cpp
的命令),有几个,但它们通常应该在一个项目中具有相同的-I
标志。如果您从Qt Creator编译,请查看屏幕底部的"编译输出"选项卡。如果从命令行编译,请向上滚动甚至复制粘贴到某个编辑器。 -
查看 compile 命令上是否有
-I...something...
选项,该选项与正确包含文件的位置匹配。 -
如果没有,请在
.pro
文件中添加或修复它,重新运行 qmake,构建。
上面适用于查找标头,-I
用于指定包含路径的编译命令的标志。如果是链接器抱怨(在这种情况下通常会发生,在修复包含之后),然后找到链接命令(一个包含一堆.o
文件,以及类似 -o final-program-name
的东西),然后查找-L
选项,它指定链接路径。
- 既然存在危险,为什么项目要使用-I include开关
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何将更多文件夹添加到c++include路径
- 什么是"#include <boost/functional/hash.hpp> "?
- 在函数内部的声明中初始化数组,并在外部使用它
- 使外部项目可用于find_package CMake
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- C++:来自外部文件的Trivia
- 从函数角度看ID到文件路径的内部与外部映射
- C++:将外部库链接到dll库
- spdlog标头仅与外部fmt一起使用.spdlog错误:'内部':不是'fmt'
- 节俭并发:未解决的外部问题
- 如何在c++中从git建立外部库
- 未解析的外部符号_MsiLocateComponentW@12.
- 如何使用对C函数和类对象的外部调用来处理C++头文件
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 具有外部"c"和程序集的未定义函数
- Qt #include 无法使用外部库
- #include < boost/chrono.hpp> 导致未解析的外部符号,使用 bcp