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. [转]netty对http协议解析原理

    本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...

  2. tornado 学习笔记7 RequestHandler功能分析

           在第5部分讲到,构建一个tornado网站,必须包含一个或者多个handler,这些handler是RequestHandler的子类.每个请求都会被映射到handler中进行处理,处理 ...

  3. Java_动态编译总结

    不多说直接上代码: 动态编译的主类: package com.lkb.autoCode.util; import com.lkb.autoCode.constant.AutoCodeConstant; ...

  4. [转]Flash Player、AIR、Flex SDK 大全

    平时不断看到有朋友在各种论坛.空间.知道.群里求 Flash 平台各种版本的运行时(Flash Player)和SDK(Flex.AIR).今天就看到不下10次!所以决定把 Macromedia.Ad ...

  5. iOS tableview删除多余的空cell

    self.tableview.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 加一句这个,然后给tableview一个背景色, ...

  6. hdu 5122

    只要一个数的后面有比它小的数,这个数就要移,于是从后往前一趟遍历,记录一下这些数的个数就可以了. #include"iostream" #include"stdio.h& ...

  7. Android-Sqlite数据库的操作

    Sqlite数据库的简单操作: 设置增删改查的按钮,xml界面布局设置 <?xml version="1.0" encoding="utf-8"?> ...

  8. android中的回调简单认识

    首先说一下最抽象的形式--2个类,A类和B类.A类含有1个接口.1个接口变量.(可能含有)1个为接口变量赋值的方法以及1个会使用接口变量的"地方";B类实现A中的接口,(可能)含有 ...

  9. 一个人java深入理解java logback配置

    http://blog.csdn.net/initphp/article/category/1230072/2

  10. PHP处理一个5G文件,使用内存512M的,数据为整形,从大到小排序,优化排序算法

    $file='./new.txt'; $fp = fopen($file, "r"); $chunk = 4096;//一次处理1M的字节 1M=1024*1024 $fs = f ...