由于工作需要,开始使用Qt,由于在网上找的教程文档时针对qt3的,所以在学习的过程遇到了许多由于版本不一致造成的问题,因此记录下来。

参考的文档是:Qt入门教程 详细讲解版

本机Qt版本为:Qt5.3.1(windows、Linux(CentOS 6.2))

windows下

1、错误:C1083: 无法打开包括文件:“QApplication”: No such file or directory
原因:Qt5里不再用QtGui模块,而是使用QtWidgets模块。
解决办法:在工程文件.pro里加上 QT += widgets
2、error: 'class QApplication' has no member named 'setMainWidget'
a.setMainWidget(&hello);
解决办法:去掉该句就行了。

原因:Qt 3.x支持setMainWidget,但是Qt4已经取消了对setMainWidget的支持。
这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应用程序就退出了。
你不用必须设置一个主窗口部件,但绝大多数程序都有一个。

3、qvbox.h:no such file or directory #include <qvbox.h>
原因:依然是兼容性问题,Qt4中已经不再支持了
解决办法:使用QWidget代替。
http://blog.csdn.net/h516077808/article/details/8461083

Linux下

1、在网上下载,安装好了之后无法启动,使用命令启动得到如下错误:

/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found
出现这种问题就是因为编译库的编译器和编译当前程序的编译器版本是不一样的,在具体一点就是因为,
当前程序的编译器的版本是比较低的,只要升级一下就可以了。可以用如下命令查看一下当前GCC版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

得到版本只到GLIBCXX_3.4.13,因此出现这个错误,

升级GCC

可以参考这篇文章
1.下载源码包
wget http: //ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
解压: tar -jxvf gcc-4.8.2.tar.bz2

2.下载编译所需依赖库
cd gcc-4.8.2
./contrib/download_prerequisites
cd ..

3.建立编译输出目录
mkdir gcc-build-4.8.2

4.进入此目录,执行以下命令,生成makefile文件
cd gcc-build-4.8.2

下面这句配置错了,需增加--prefix指定安装目录:
../gcc-4.8.2/configure --prefix=/usr/local/gcc-4.8.2/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

5.编译
make -j4
如果编译成功,则时间是比较长的,半个小时左右,所以如果你看它一直在输出没有立刻停下来,应该很开心!

6.安装
make install

5.将libstdc++.so.6.0.18文件复制到 /usr/lib 文件夹下面(版本号根据自己的情况填写)

sudo cp libstdc++.so.6.0.18 /usr/lib64  

6.进入/usr/lib64文件夹下,建立新的软链接

sudo ln -sf libstdc++.so.6.0.18 libstdc++.so.6

7.再查看一次

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

Qt学习过程中遇到的问题的更多相关文章

  1. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  2. qt 1 qt开发中的窗口设计

    一个简单的qt界面 相应代码如下: setWindowTitle(tr("Sotware"));//设置窗体标题 ui->tabWidget->removeTab(); ...

  3. qt creator中使用qwt插件

    前提:我用mingw编译的qwt. 将qwt插件集成到qt designer非常easy.仅仅要把qwt编译的qwt_designer_plugin.dll复制到C:\Qt\Qt5.3.1\5.3\m ...

  4. Qt组件中的双缓冲无闪烁绘图

      双缓冲绘图在Qt4中,所有的窗口部件默认都使用双缓冲进行绘图.使用双缓冲,可以减轻绘制的闪烁感.在有些情况下,用户要关闭双缓冲,自己管理绘图.下面的语句设置了窗口部件的Qt::WA_PaintOn ...

  5. Win32下 Qt与Lua交互使用(四):在Lua脚本中自由执行Qt类中的函数

    话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功 ...

  6. 自定义的插件如何加载到Qt Designer中(详细)

    要想在Qt Designer中使用自定义控件,必须要使Qt Designer能够知道我们的自定义控件的存在.有两种方法可以把新自定义控件的信息通知给Qt Designer:“升级(promotion) ...

  7. Qt应用中检测内存泄露——VLD

    本文简要描述一下在Qt应用中使用VLD来检测内存泄露.本次测试环境:QtCreator2.3 + Qt4.7.4-vs2008 + VS2008 Express. 1.下载并安装:VLD-2.2: h ...

  8. Qt在VS2013或Qt Creator 中的控制台输出方式设置

    首先值得注意的是:在写程序的时候,项目保存路径不要涉及到中文,否则容易出错! 一.Qt在VS2013中的控制台输出方式: 注意:这里是而不是Qt Application. 然后直接点击finish即可 ...

  9. Visual Studio下Qt编程中对中文的处理

    Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual St ...

随机推荐

  1. 【干货合集】Docker快速入门与进阶

    收录待用,修改转载已取得腾讯云授权 Docker 在众多技术中,绝对是当红炸子鸡.这年头,如果你不懂一点容器,不学一些Docker,还怎么出去跟人炫耀技术? Docker 也是云计算技术中较为热门的一 ...

  2. SVM 总结

    SVM有一个核心函数SMO,也就是序列最小最优化算法.SMO基本是最快的二次规划优化算法,其核心就是找到最优参数α,计算超平面后进行分类.SMO方法可以将大优化问题分解为多个小优化问题求解,大大简化求 ...

  3. 全民Scheme(2):来自星星的你

    一门编程语言,假设不能对你思考编程的方式产生影响.就不值得去学习.--  Alan Perlis (define rember*   (lambda (a list)     (cond       ...

  4. STL - vector algorithm

    // create vector with elements from 1 to 6 in arbitrary order vector<, , , , , }; // find and pri ...

  5. CKEditor与CKFinder学习--CKFinder源代码改动自己定义上传文件名称

    CKFinder的系列文章到眼下应该说基本能够满足开发需求了,只是另一个小细节,CKFinder默认上传的文件名称和源文件名称一致,假设文件名称反复会自己主动加入编号"(1)"&q ...

  6. 算法笔记_016:凸包问题(Java)

    目录 1 问题描述 2 解决方案 2.1 蛮力法 1 问题描述 给定一个平面上n个点的集合,它的凸包就是包含所有这些点的最小凸多边形,求取满足此条件的所有点. 另外,形象生动的描述: (1)我们可以把 ...

  7. leetCode(29):Happy Number

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  8. sql中同一个Trigger里同时包含Insert,Update,Delete

    sql中同一个Trigger里同时包含Insert,Update,Delete SQLServer是靠Inserted表和Deleted表来处理的,判断一下就可以了,只不过比ORACLE麻烦一点 cr ...

  9. Unix 网络编程 I/O 模型 第六章

    前提,也是重点是, 当接收收据.或者读取数据时,分两步 1 等待数据准备好. 2 从内核拷贝数据到进程. 对于一个network IO 即 socket(这里我们以read举例),它会涉及到两个系统对 ...

  10. 〖Linux〗Bash快捷键使用

    这篇 Bash Shell Shortcuts 的快捷键总结的非常好.值得学习.下面内容大多数是拷贝粘贴与总结. CTRL 键相关的快捷键: Ctrl + a - Jump to the start ...