g++ 找不到文件

问题描述 投票:0回答:1

我正在尝试从 Qt 网站的小部件示例部分运行模拟时钟示例。 (如果您尝试运行该文件,请注意示例代码在文件的最末尾缺少右大括号。)

我能够使用 cmake 成功构建并运行该文件(经过一些小麻烦,因为其中一个语句需要 Qt 6.6,但 Ubuntu 只会加载 6.2.4)。

对于简单的、只有一个源文件的项目,我更喜欢使用普通的 g++ 而不是复杂的构建系统。 Cmake 实际上默认为 g++。

我的源文件包含以下行:

#include <QWidget>

我的 g++ 命令行是:

g++ -std=c++23 -I/usr/include/x86_64-linux-gnu/qt6:/usr/include/x86_64-linux-gnu/qt6/QtWidgets analogclock.cpp

我得到的错误是:

analogclock.cpp:6:10: fatal error: QWidget: No such file or directory
    6 | #include <QWidget>
      |          ^~~~~~~~~

QtWidgets 目录就在那里,它确实包含 QWidget 文件。 (我需要 -I 列表的第一个组件以避免不同的错误。)

我已经有一段时间没有使用 g++ 了,所以显然我做错了什么。请帮忙。

编辑:@Laughing Out Clouds 提供的链接并未解决该问题。该链接中的所有答案和评论都使用 qmake 和/或项目文件。没有一个解决方案能够解决纯 g++ 方法。我已经知道我可以使用 cmake 运行该文件及其复杂的要求。

qt compiler-errors g++
1个回答
0
投票

您的

g++
命令行包含无效的
-I
选项:

-I/usr/include/x86_64-linux-gnu/qt6:/usr/include/x86_64-linux-gnu/qt6/QtWidgets

您不能通过用

-I
分隔它们来向
:
选项提供多个目录参数。
g++
认为您正在指定一个名为:

的单个目录
/usr/include/x86_64-linux-gnu/qt6:/usr/include/x86_64-linux-gnu/qt6/QtWidgets

并且没有给出任何错误。如果您希望指定多个包含路径(这很常见), 根据需要使用尽可能多的

-I
选项,并按照您搜索的优先顺序给出它们 想要:

-I/usr/include/x86_64-linux-gnu/qt6  -I/usr/include/x86_64-linux-gnu/qt6/QtWidgets
© www.soinside.com 2019 - 2024. All rights reserved.