qmake缺少对象文件

时间:2013-01-27 22:00:55

标签: qt compilation qmake

好吧......所以我对Qt很新。我刚刚将它安装在我的Ubuntu发行版上。 我创建了一个新的测试应用程序,以查看它是否适用于我的../helloworld/目录中的以下文件(helloworld.cpp):

/*  helloworld.cpp */
#include <QApplication>
#include <QWidget>

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

    QWidget window;

    window.resize(250, 150);
    window.setWindowTitle("Simple example");
    window.show();

    return app.exec();
}

我运行qmake -project以生成helloworld.pro文件。 接下来我运行qmake以生成Makefile 接下来我运行make以便编译并得到以下输出/错误:

g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG 
-DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++-64 -I. 
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 
-I. -I. -o helloworld.o helloworld.cpp
helloworld.cpp:1:24: fatal error: QApplication: No such file or directory
compilation terminated.
make: *** [helloworld.o] Error 1

意味着缺少helloworld.o文件......我该如何解决这个问题?我尝试添加QT += webkit作为另一个讨论说...而且这也不起作用。

任何代码猴子都有任何想法如何解决这个问题?我将不胜感激!

3 个答案:

答案 0 :(得分:1)

在.pro文件中,添加以下行

 QT += core widgets gui

不要忘记在命令行中再次调用qmake,以便qmake重新创建Makefile。这应该为您解决问题。

答案 1 :(得分:0)

如果您已安装QApplication包,则

/usr/include/qt4/QtGui应位于libqt4-dev内。 如果没有安装该软件包,那就是错误的原因:只需安装它:

sudo apt-get install libqt4-dev

答案 2 :(得分:0)

cpp:1:24: fatal error: QApplication: No such file or directory
compilation terminated.

实际错误是缺少的头文件(QApplication)。这导致您的代码(helloworld.cpp)无法编译生成二次错误

make: *** [helloworld.o] Error 1

因此,解决方案是确保找到QApplication。这通常由.pro文件中的Qt +=语句处理。

Qt += webkit告诉QMake您想要创建一个webkit(Web浏览器)应用程序。在这种情况下不应该这样做。

您尝试构建的是GUI应用程序,因此您需要确保.pro文件指定了该应用程序。这可以通过指定Qt += gui

来完成

更重要的是,我建议您在文件顶部添加Qt += gui core。这告诉QMake你正在使用Qt的核心和gui组件。