【问题标题】:qt command line application compilationqt命令行应用编译
【发布时间】:2017-06-24 19:20:42
【问题描述】:

尝试编译这个简单的 qt 应用程序

#include <QApplication>
#include <QPushButton>

 int main(int argc, char *argv[])
 {
   QApplication app(argc, argv);

   QPushButton hello("Hello world!");
   hello.resize(100, 30);

   hello.show();
   return app.exec();
}

尝试编译

 g++ -I /usr/local/Cellar/qt5/5.8.0_1/Frameworks/QtGui.framework/Headers -o example main.cpp -framework QtGui -framework QtCore

遇到错误

 main.cpp:1:10: fatal error: 'QApplication' file not found
 #include <QApplication>
     ^
 1 error generated.

已经检查了头文件的存在并且它包含在目录中

 :Headers ali$ cd /usr/local/Cellar/qt5/5.8.0_1/Frameworks/QtGui.framework/
 $ ls
 Headers        QtGui       QtGui.prl   Resources   Versions

关于我哪里出错的任何建议

【问题讨论】:

  • 我没有看到“/usr/local/Cellar/qt5/5.8.0_1/Frameworks/QtGui.framework/Headers”在您的包含搜索路径中的位置。这是在哪里发生的?
  • 很抱歉,对 c++ 非常陌生,并且令人信服的代码手工获得了代码和互联网的编译命令,他们对其进行了编辑以适应我安装的 qt 版本
  • “Headers”目录是否包含QApplication.h?
  • 不,它不是 QApplication.h
  • 你需要弄清楚它在哪里。因为那是你告诉你的编译器它所在的地方。

标签: c++ macos qt command line


【解决方案1】:

您告诉编译器查找“QApplication.h”的路径不包含“QApplication.h”:

-I /usr/local/Cellar/qt5/5.8.0_1/Frameworks/QtGui.framework/Headers

在典型安装中,“QApplication.h”将位于“QtWidgets”目录中,而不是“QtGui”目录中。因此,您可能希望包含该目录。

【讨论】:

  • @Downvoter 否决票有什么特别的原因吗?如果只是强制性的 C++ 否决票,则无需回应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
  • 1970-01-01
相关资源
最近更新 更多