错误 QApplication:没有这样的文件或目录

新手上路,请多包涵

我已经安装了具有 Qt 的 C++SDK,但是当我尝试编译链接 QApplication 的代码时,它给了我错误:

 Error QApplication: no such file or directory

如何链接这些库?我搜索了目录,有一个名为 QApplication.h 的文件;所以我尝试将它与 -I 链接(链接目录),但它仍然给我那个错误。

原文由 Ramy Al Zuhouri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.5k
2 个回答

首先,错误 QApplication: no such file or directory 表示您的编译器无法找到此标头。正如您在问题中提到的,它与链接过程无关。

-I 标志(大写 i )用于指定包含(标题)目录(这是您需要做的),而 -L 标志用于指定库目录. -l 标志(小写 L)用于将您的应用程序与指定的库链接。

但是你可以 使用 Qt 来发挥你的优势:Qt 有一个名为 qmake 的构建系统,它使事情变得更容易。例如,当我想编译 main.cpp 时,我会创建一个 main.pro 文件。出于教育目的,假设此源代码是一个仅使用 QApplicationQDeclarativeView 的简单项目。一个合适的 .pro 文件是:

 TEMPLATE += app
QT += gui declarative
SOURCES += main.cpp

然后,在该目录中执行 qmake 创建将用于编译应用程序的 Makefile,最后执行 make 完成工作。

在我的系统上,这个 make 输出:

 g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt_47x/mkspecs/linux-g++ -I. -I/opt/qt_47x/include/QtCore -I/opt/qt_47x/include/QtGui -I/opt/qt_47x/include/QtDeclarative -I/opt/qt_47x/include -I/usr/X11R6/include -I. -o main.o main.cpp
g++ -Wl,-O1 -Wl,-rpath,/opt/qt_47x/lib -o main main.o -L/opt/qt_47x/lib -L/usr/X11R6/lib -lQtDeclarative -L/opt/qt_47x/lib -lQtScript -lQtSvg -L/usr/X11R6/lib -lQtSql -lQtXmlPatterns -lQtNetwork -lQtGui -lQtCore -lpthread

注意:我将Qt安装在另一个目录–> /opt/qt_47x

编辑:Qt 5.x 及更高版本

QT += widgets 添加到 .pro 文件并解决此问题。

原文由 karlphillip 发布,翻译遵循 CC BY-SA 4.0 许可协议

配置 += c++11

在 myproject.pro 上写上面的代码

我正在使用 linuxmint 20.0

原文由 Sailendra Chettri 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题