关于Ubuntu中编译Qt4出错的问题QApplication not found or not such a file

10月21日
关于Ubuntu中编译Qt4出错的问题
今天在进行Qt4初体验的时候发现,照搬书上的源代码竟然也会出错。
==================================================
#include <QApplication>
#include <QString>
#include <QLabel>
#include <QWidget>
#include <QDebug>
#include <QTextStream>

int main(int argc, char * argv[]){
    QApplication myapp(argc, argv);
    QWidget wid;
    qDebug() << "sizeof widget: " << sizeof(wid)
        << " sizeof qapplication: " << sizeof(myapp)
        << endl;
    QString message;
    QTextStream buf(&message);
   
    buf << "A QWidget is " << sizeof(wid) << "bytes. /nA QObject is " << sizeof(QObject)
        << "bytes. /nA QApplication is " << sizeof(myapp) << "bytes." << endl;
   
    qDebug() << message;
    QLabel label(message);
    return myapp.exec();
};
==================================================
具体报错为:QApplication not found or not such a file 之类的一大堆。由于是用的Ubuntu在线安装的Qt4,故一般不会出现类库缺失或者无法使用的情况。根据以往的经验,问题计有可能出在编译器上。
执行:
~$  export
显示系统环境变量,可以找到类库的路径,没问题。
~$  qmake -v
QMake version 2.01a
Using Qt version 3.2 in /usr/lib

问题出来了,由于我们这个测试程序是基于Qt4的,在Qt3下是无法编译通过的,因此应该将编译器改为Qt4。但是我明明在系统中安装的是Qt4,没有用Qt3啊~~于是继续:
~$  which qmake
qmake: /etc/alternatives

ok,找到了,
~$  cd  /etc/alternatives
找到qmake,是一个链接,找到它的源文件,竟然是/usr/bin/qmake-qt3 !!!!原来如此。接下来就简单了,删掉这个链接,然后做一个到/usr/bin/qmake-qt4的链接就ok了。如下:
~$  sudo rm /etc/alternatives/qmake
~$  sudo ln -s  /usr/bin/qmake-qt4 /etc/alternatives/qmake

再试一下,现在系统的Qt版本,
~$  qmake -v
QMake version 2.01a
Using Qt version 4.3.4 in /usr/lib

哈哈,搞定,编译及结果:
~$  qmake -project
~$  qmake
~$  make

默认结果是一个名为qt的可执行程序(当然也可以在Makefile中将 TARGET 项改为别的名字),执行之:
~$  ./qt
"A QWidget is 20bytes.
A QObject is 8bytes.
A QApplication is 8bytes.
"

通过!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值