【问题标题】:QT compilation, can't find includesQT编译,找不到包含
【发布时间】:2022-01-16 05:29:13
【问题描述】:

我正在尝试编译 QT 代码,但由于某种原因,编译器抱怨即使我在 makefile 中指定了包含文件的路径,它也找不到包含文件

asd.cpp

#include <QtWidgets/qtwidgetsglobal.h>

int main(int argc, char **argv)
{

}

编译命令

g++ -I. -I/home/marti/Qt/6.2.2/gcc_64/include/QtCore -I/home/marti/Qt/6.2.2/gcc_64/include/QtGui -I/home/marti/Qt/6.2.2/gcc_64/include/QtWidgets -c asd.cpp -o out/asd.o

错误

asd.cpp:1:10: fatal error: QtWidgets/qtwidgetsglobal.h: No such file or directory
    1 | #include <QtWidgets/qtwidgetsglobal.h>
  |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

如您所见,我已指定QtWidgets..的路径。我不知道为什么找不到QtWidgets/qtwidgetsglobal.h

【问题讨论】:

  • 试试#include &lt;qtwidgetsglobal.h&gt;
  • 如果您尝试使用#include &lt;QtWidgets/qtwidgetsglobal.h&gt;,那么编译器选项可能应该是-I/home/marti/Qt/6.2.2/gcc_64/include。但是请注意,qtwidgetsglobal.h 不是记录在案的标头。相反,您应该指定所需的真实标题。
  • @G.M.哦,是的..我真的应该改成-I/home/marti/Qt/6.2.2/gcc_64/include,这样就可以了。谢谢!
  • 或使用适当的构建系统,例如qmake 或 cmake,它们以更理智的方式添加这些包含和库。

标签: c++ qt include


【解决方案1】:

请注意,您不直接包含头文件。您改为包含“别名”。在您的情况下,您可能只想:

# include <QWidget>

另请参阅页面顶部明确声明的documentation for QWidget。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多