QT5.2.1 hello QT!

开始学习QT,从官网上下了最新的QT5.2.1,第一个程序hello QT!还费了一点点力气……

首先新建一个目录hello,然后在目录下新建hello.cpp文件,可以使用vim编辑,源代码如下:

main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello Qt!");
    label->show();
    return app.exec();

}

代码比较简单,容易理解,是从C++ GUI QT4编程上抄来的。

按书上的步骤,下一步在命令行敲入qmake -project,建立qt工程文件,这一步没什么问题,可以看到在本目录下生成了hello.pro。

第三步输入qmake hello.pro,生成Makefile,这一步也没什么问题。

最后一步make,本以为要大功告成,结果出现错误,如下:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++ -I. -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o hello.o hello.cpp
hello.cpp:1:24: fatal error: QApplication: No such file or directory
 #include <QApplication>
                        ^
compilation terminated.
make: *** [hello.o] Error 1


意思大概就是QApplication这个文件没有找到。好吧既然如此使用find找一下,在这个目录下:

./Qt5.2.1/5.2.1/gcc/include/QtWidgets/QApplication

目测是比环境变量多了个QtWidgets目录吧……于是把两个include改成#include <QtWidgets/QApplication>,然后再make下。出现如下错误:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt5/mkspecs/linux-g++ -I. -I. -I/usr/include/qt5 -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o hello.o hello.cpp
g++ -Wl,-O1 -o hello hello.o   -lQt5Gui -L/usr/lib/i386-linux-gnu -lQt5Core -lGL -lpthread 
hello.o: In function `main':
hello.cpp:(.text.startup+0x39): undefined reference to `QApplication::QApplication(int&, char**, int)'
hello.cpp:(.text.startup+0x81): undefined reference to `QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)'
hello.cpp:(.text.startup+0x91): undefined reference to `QWidget::show()'
hello.cpp:(.text.startup+0x96): undefined reference to `QApplication::exec()'
hello.cpp:(.text.startup+0xa6): undefined reference to `QApplication::~QApplication()'
hello.cpp:(.text.startup+0xc0): undefined reference to `QApplication::~QApplication()'
collect2: error: ld returned 1 exit status
make: *** [hello] Error 1
这次目测是链接不到库吧……估计与头文件累死,就是实际路径应该多一重QtWidgets,但是环境变量里没有加进去。在网上找了找资料,看到有人说要在.pro文件中加入

QT += widgets

好吧,修改hello.pro文件,加入上面的语句,然后记得要qmake以下来更新Makefile文件,再次make,就可以通过了。

./hello

可以看到屏幕出现了一个小框,上面写着Hello Qt!,成功!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值