2015-01-28linux
准备两个文件:vim
qt-x11-opensource-src-4.5.3.tar.gzbash
qt-creator-opensource-linux-x86_64-3.3.0.run工具
一、得到源代码测试
src 官网下载地址:ftp://ftp.qt.nokia.com/qt/source/nuxt
2009 年 10 月 1 日发布的 qt-x11-opensource-src-4.5.3.tar.gz,大小 122 Mb。3d
二、解压缩orm
tar xvfz qt-x11-opensource-src-4.5.3.tar.gzip
三、生成 makefile 文件ssl
./configure
这个时候他会问你:“Which edition of Qt do you want to use?”
而后给你两个类型供选择:
Type ''c'' if you want to use the Commercial Edition.
Type ''o'' if you want to use the Open Source Edition.
第一个是商业版,第二个是自由版。
选择 ''o''(Qt/嵌入式自由版是Qt为了开发自由软件提供的嵌入式版本)。
这时候,出现许可界面。
选择 ''yes'' 接受许可协议。
开始生成 makefile 文件。这个大约须要 5 -10 分钟的时间。
四、Qt 编译
gmake //如果此处出错,解决办法见下面
这个过程时间比较长,须要两个小时左右。
五、Qt 安装
运行 gmake install
默认安装至 /usr/local/Trolltech/Qt-4.5.3
大约 5 - 10 分钟。正常结束,安装完毕。
运行 /usr/local/Trolltech/Qt-4.5.3/bin/designer ,看见 qt 启动,也就是说 qt 安装好了。
六、设置环境变量
1、先修改用户环境变量
vi /home/defonds/.bashrc
在其最后添加如下信息
export QTDIR=/usr/local/Trolltech/Qt-4.5.3
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2、再修改全部用户环境变量
vi /etc/profile
在其最后添加如下信息
export QTDIR=/usr/local/Trolltech/Qt-4.5.3
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
3、测试一下
从新开一个终端,输入命令:
qmake -v
输出结果:
QMake version 2.01a
Using Qt version 4.5.3 in /usr/local/Trolltech/Qt-4.5.3/lib
输入命令:
which qmake
输出结果:
/usr/local/Trolltech/Qt-4.5.3/bin/qmake
证实 Qt 环境变量已经被配置成功。
qt-creator的安装方法很简单,即:
一、下载qt-creator-opensource-linux-x86_64-3.3.0.run
二、chmod +x qt-creator-opensource-linux-x86_64-3.3.0.run
./ qt-creator-opensource-linux-x86_64-3.3.0.run
接下来就是很是熟悉的安装界面了
重启一下就行了!
刚开始编译时,gmake 没用的方法:
经过以上的分析能够知道,解决这个问题有两种方法,一个就是更改qmake的连接,使得qmake这个命令连接到安装目录下咱们安装版本的qmake,还有一种方法就是改环境变量。
先说更改连接的方法,经过上面的介绍,这个其实操做就比较直接和简单了,命令和实验结果以下:
root@emouse:/# rm /etc/alternatives/qmake
root@emouse:/#
ln -s /usr/local/Trolltech/Qt-4.8.4/bin/qmake /etc/alternatives/qmake
root@emouse:/# qmake -v
QMake version 2.01a
Using Qt version 4.8.4 in /usr/local/Trolltech/Qt-4.8.4/lib
能够看到,qmake已经成功更改成4.8.4版本。
第二种办法就是更改环境变量,这个我没有尝试,有兴趣的本身验证。
vi /home/defonds/.bashrc 用来修改用户环境变量,在文件后面添加如下信息
export QTDIR=/usr/local/Trolltech/Qt-4.8.4
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
再修改全部用户环境变量vi /etc/profile 一样在文件后添加上面的环境变量信息。这种方法应该一样可行。
交叉编译ARM版 Qt (qt-everywhere-opensource-src-4.8.4)
因实际项目需求,需将Qt编译成LINUX-ARM版,如下为整个操做过程,使用Qt编写的程序已在实际开发板上运行,在此贴出,希望能为须要的朋友提供上帮助。
准备工做:
Linux内核版本:
开发电脑:Ubuntu12.04,开发板:linux-2.6.37
交叉编译工具:
arm-none-linux-gnueabi 4.4.1
Qt安装包:
qt-everywhere-opensource-src-4.8.4.tar.gz
安装
一.安装交叉编译工具
1.本机使用的交叉编译工具是:arm-none-linux-gnueabi
2.添加交叉编译工具的路径至相应环境变量中:
export PATH=/usr/local/arm-2009q1-203/bin/:$PATH
3.经过如下命令查看arm-none-linux-gnueabi编译工具是否安装成功
a. 执行:arm-none-linux-gnueabi-g++ -v
b. 执行:arm-none-linux-gnueabi-gcc -v
若是以上两步都能正确打印对应的版本信息,则代表arm-none-linux-gnueabi编译工具
已安装成功!
二.交叉编译ARM版Qt
1.下载Qt源码包 qt-everywhere-opensource-src-4.8.4.tar.gz;
2.解压Qt源码包
tar -xvfz qt-everywhere-opensource-src-4.8.4.tar.gz
3.修改文件:
/usr/local/Qt-4.8.4-linux-arm/mkspecs/qws/linux-arm-g++/qmake.conf
# 设置交叉编译工具链:
# 本项目使用的交叉编译工具是 arm-none-linux-gnueabi-g++
#
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip
4.(若有须要,需修改g++.conf文件)
修改文件: /usr/local/Qt-4.8.4-linux-arm/mkspecs/common/g++.conf
# 设置使用ARM高级特性的编译标志:
#
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp
5.配置Qt编译选项
进入Qt解压目录,执行以下命令:
./configure -prefix /usr/local/Qt-4.8.4 -embedded arm -xplatform /qws/linux-arm-g++ -depths 16,24,32 -little-endian -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-freetype -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-pc -fast -qt-gfx-transformed -opensource -confirm-license
或者写一个脚本config.sh,内容如上,以后运行这个脚本:./config.sh
6.执行 make 命令;
该步骤大体须要2~3个小时
错误:qtconcurrentiteratekernel.cpp:(.text+0x3c): undefined reference to `clock_gettime'
修改:vim src/corelib/Makefile 加上-lrt
LIBS = $(SUBLIBS) -L/opt/qt-everywhere-opensource-src-4.8.4/lib -lpthread -lm -ldl -lrt
7.执行 make install 命令;
8.修改用户环境变量
export ARMQTDIR=/usr/local/Qt-4.8.4
export PATH=$ARMQTDIR/bin:$PATH
export MANPATH=$ARMQTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$ARMQTDIR/lib:$LD_LIBRARY_PATH
9.测试 ARM 版 QT 是否安装并配置成功:
a. 执行:qmake -v
打印如下对应信息:
QMake version 2.01a
Using Qt version 4.8.4 in /usr/local/Qt-4.8.4/lib
b. 执行:which qmake
打印如下对应信息:
/usr/local/Qt-4.8.4/bin/qmake
c. 编写一个简单的测试程序,文件名为hello.cpp,进入该文件目录,进行工程编译,看是否能正确通编译
hello.cpp源码:
#include <QApplication>
#include <QDebug>
int main(int argc,char *argv[])
{
qDebug("Hello, welcome to Qt world!");
return 0;
}
顺序执行如下操做:
@1. 执行:qmake -project hello1.cpp
生成 hello1.pro 工程文件
@2. 执行:qmake hello1.pro
生成 Makefile 文件
@3. 执行:make
生成 hello.o, hello 文件
若是执行@2步骤时出现如下错误:
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: hello1.pro
则是 QMAKESPEC 变量没有设置好,执行:
export QMAKESPEC=/usr/local/qt-4.8.4/mkspecs/qws/linux-arm-g++
cd /usr/local/Qt-4.8.4/lib/
file libQT* 看输出信息是ELF ARM
以后将/usr/local/Qt-4.8.4/lib/libQt* 根文件系统/usr/lib/下