1.到官网http://qt-project.org/downloads或者ftp://ftp.qt-project.org/上下载Qt的源码包,要安装当然要先有源码咯,我下载的是qt-everywhere-opensource-src-4.8.1.tar.gz。当然可以下载X11版的。这里我是方便在windows也搭建环境。linux下有自带的gcc,不像windows那么麻烦,还得安装minGW。当然我直接用VS2008集成的。

2.到终端中,先执行sudo apt-get install build-essential安装g++和make,否则第五步会出错。其实直接sudo apt-get install g++也行,我就是这么干的。

3.进入源码包所在的目录,使用tar xvzf 命令解压下载的Qt源码包。

4.这一步很重要,执行sudo apt-get install libX11-dev libXext-dev libXtst-dev命令安装这三个软件。Ubuntu在安装时默认不装的。如果不装,下一步进行到一半会出错。

5.进入解压后的目录,在终端运行./configure,然后选择安装类型,输入O表示开源版。然后输入yes表示接受GPL协议。此时开始进行配置产生makefile文件。此过程会很长,可以去晚会再回来。

6.当configure完成后,Qt会默认安装到/usr/local/Trolltech/Qt-4.8.1文件夹下。这里就不更改了,不知道改一下会出现什么错误。还是别改了,接着运行make,等待编译Qt。这个过程也不短,可以去找妹子聊会天。

7.当make完成后,运行一下sudo make install。

8.到这一步,Qt算是安装完成了。接下来配置环境变量。记得我当时改动了系统环境变量,结果系统无法启动了,最后在恢复模式下,把配置文件改回来才启动的。其实,只要改一下用户环境变量就行了。具体方法是,回到用户主目录,输入sudo gedit .profile。然后在后面加上

PATH=/usr/local/Trolltech/Qt-4.8.1/bin:$PATH

export PATH

就OK了。而且使用vi命令好像不能修改,我试过的。你可以试试看。当然,貌似不使用sudo命令,还无法修改文件。自己去试试看。重启机器,使更改生效。

9.到此Qt安装完毕。到终端中运行qmake -version命令,弹出相应的信息,说明安装成功了。接下来就可以进行Qt开发了。

写个程序测试一下,新建立一个文件夹HelloWorld。

打开终端里面新建一个HelloWorld.cpp文件,并vi打开文件,输入以下内容:

#include<qapplication.h>

#include<qlabel.h>

int main(int argc,char *argv[])

{

QApplication app(argc,argv);

QLabel *label=new QLabel("Hello World!!!");

label->show();

return app.exec();

}

写完上面的代码后保存退出(:wq)vi编辑器。

然后进入HelloWorld文件夹。依次执行以下命令:

qmake -project

qmake HelloWorld.pro

make

./HelloWorld

程序正常的话,你会看到对话框显示“HelloWorld!!!”

10.当然,要想使用更方便,也可以按装Qt Creator。不过我感觉刚刚学还是命令行比较好。记得《疯狂JAVA讲义》的作者李刚,不是“我爸是李刚”的“李刚”说过一句话,用IDE(集成开发环境)学JAVA,永远学不会真正的编程,因为集成开发环境帮你干了太多的事情了,你根本不了解最底层是如何运作的,出现问题你也不知道哪里出问题了。不过,Qt Creator可以先装在那里备用。接下来就是开发学习之旅。

Linux编译源码的方式安装Qt4开发环境(基于Ubuntu系统)的更多相关文章

  1. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  2. CentOS7下源码包方式安装Erlang

    1.官网上下载源码包:OTP 19.1 Source File 2.把源码放在source目录中 , 解压 :tar -zxvf otp_src_19.1.tar.gz [或者 直接下载 rpm包 e ...

  3. linux 编译源码报错,找不到libXrender.so.1

    1.通过xshell连接到服务器编译hadoop源码得时候遇到问题, 2.使用Xshell的时候登陆后的环境变量中会比SecureCRT登陆后的环境变量多出一条 DISPLAY=localhost:1 ...

  4. CentOS7下源码包方式安装rabbitmq

    1.先安装erlang http://www.cnblogs.com/justphp/p/6093880.html 2.下载rabbitmq rpm包: wget http://www.rabbitm ...

  5. openfire4.0.2源码 使用 IntelliJ IDEA 搭建开发环境

    从官网下载压缩包,解压,直接打开build目录下的project 打开后, 相关的设置 fix直接修复或者下载 设置 设置每个插件目录下的java目录为source 编译openfire和plugin ...

  6. linux下源码安装jdk1.8和tomcat8.5

    Java是目前可移植性较高的语言,相当火热,tomcat运行就需要Java语言环境 0.java简介 1)tomcat运行需要对应的Java环境,Java环境通过安装jdk来获得2)为了防止兼容性问题 ...

  7. Centos7服务器中通过编译源码安装MySQL

    基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径 在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置 我决定再尝试一下通过编译源码来自定义安装: ...

  8. LINUX下编译源码时所需提前安装的常用依赖包列表

    yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-deve ...

  9. Linux 从源码编译安装 OpenSSH

    https://blog.csdn.net/bytxl/article/details/46639073 Linux 从源码编译安装 OpenSSH以及各问题解决 2015年06月25日 17:37: ...

随机推荐

  1. linux系统meminfo详解(待补充)

    ========================================================================================== MemTotal: ...

  2. [转]webpack进阶构建项目(一)

    阅读目录 1.理解webpack加载器 2.html-webpack-plugin学习 3.压缩js与css 4.理解less-loader加载器的使用 5.理解babel-loader加载器 6.理 ...

  3. SqlServer禁用启用触发器、外键约束

    --禁用指定名称触发器 ALTER TABLE tbname DISABLE TRIGGER trigname --恢复指定名称触发器 ALTER TABLE tbname ENABLE TRIGGE ...

  4. dedecms二级导航标签调用使用的方法

    <ul class="nav nav-pills blue"> <!--一级栏目下面有二级栏目的 --> {dede:channelartlist type ...

  5. Python标准异常topic

    Python标准异常topic AssertionError                            断言语句 (assert)                              ...

  6. MySQL支持的数据类型(2)( 日期)

    日期和时间类型 字节 最小值 最大值 date 4 1000-01-01 9999-12-31 datetime 8 1000-01-01 00:00:00 9999-12-31 23:59:59 t ...

  7. WinForm 中TreeView 控件的使用实例

    新建一个窗体,在本窗体界面上需要以下几个按钮 (一个TreeView    一个 TextBox  三个Button 按钮) 后台代码如下: using System; using System.Co ...

  8. java并发编程(十一)线程间的通信notify通知的遗漏

    notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块 ...

  9. KnockoutJS:

    一.ko对象 js对象的改变都会导致viewmodel的变化,但view不一定变化 往ko对象里面push,viewmodel的变化,引起view的变化. 往js对象里面push,model的变化引起 ...

  10. blktrace

    统计块设备层io信息. ● 安装 http://blog.csdn.net/hs794502825/article/details/8545133 出现问题,安装新立得软件包管理器:apt-get i ...