花了一点时间,将arm版本的qt安装好了
主机:Ubuntu12.04 (普通用户下面:$ root用户:#)
目标板:UT--S3C6410开发板
交叉编译器:4.5.1
步骤
第1步 .tslib编译移植
编译tslib需要autoconf、automake、libtool包支持,在编译之前先在主机上安装这些包。
$ sudo apt-get install autoconf
$ sudo apt-get install automake
$ sudo apt-get install libtool
1、解压源码
$ sudo tar -xzvf tslib-1.4.tar.gz
2、把auto.sh脚本复制到tslib的根目录下(即自己创建 $ touch auto.sh)
3、进入到tslib目录,运行auto.sh脚本
auto.sh脚本
#!/bin/sh export PATH=/usr/local/arm/4.5.1/bin:$PATH export TOOLCHAIN=/usr/local/arm/4.5.1 export TB_CC_PREFIX=arm-linux- export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi ./autogen.sh echo "ac_cv_func_malloc_0_nonnull=yes" > arm-linux.cache ./configure \ --host=arm-linux \ --cache-file=arm-linux.cache \ --enable-inputapi=no \ PLUGIN_DIR=/usr/local/arm/tslib/plugins \ -prefix=/usr/local/arm/tslib \ -host=arm-linux \ --cache-file=arm-linux.cache \ 2>&1 | tee conf_log make 2>&1 | tee make_log make install
$ sudo ./auto.sh (注意脚本的权限 如果不可执行 设置 sudo chmod 775 auto.sh)
编译、安装完成之后,就可以在/usr/local/arm/的目录下看到tslib目录,修改tslib目录下etc/tslib.conf的配置文件,把第二行:# module_raw input的注释符号“#”和前面的空格去掉。修改完成之后就可以把tslib整个文件复制到目标板上的/usr/local/arm/的目录下了。
第2步:安装qt-embedded-linux-opensource-src-4.5.3.tar.gz
1.下载Qt源码包 qt-embedded-linux-opensource-src-4.5.3
;
2.解压Qt源码包
$ sudo tar -xvfz qt-embedded-linux-opensource-src-4.5.3
3.修改文件:$ sudo vim qt-embedded-linux-opensource-src-4.5.3/mkspecs/qws/linux-arm-g++/qmake.conf
设置交叉编译工具链:
本项目使用的交叉编译工具是 arm-none-linux-gnueabi-g++
#====================================================================
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = /usr/local/arm/4.5.1/bin/arm-none-linux-gnueabi-strip
load(qt_config)
#==================================================================
配置Qt编译选项
进入Qt解压目录,执行如下命令:
$ sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.3 -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2
-no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths
16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb -qt-mouse-linuxtp -I
/usr/local/tslib/include -L /usr/local/tslib/lib
上面的代码比较长,复制时小心,该代码用于对QT库的裁剪配置,因为QT库过大,如果完全编译的话,可能最终arm板负载不了,所以需要裁剪。而裁剪的参数没有规定的,你甚至可以不裁剪,但一般情况会把鼠标库,例子,样例代码等去掉。你可以输入./configure -help来查看各选项的含义,但都是英文的。以上“\”符号表示该行命令没有结束,接着下一行。如果把上述代码复制到终端命令行没有出错,则会出现一个提示选择信息,那是QT安装的版本选择信息,一般选择“O”,意思是开源(opensource),然后继续。
………………………………………..……..…等待一点时间.…..……..……..……..……..………..………..………..………..…
$ sudo make
………………………………………..……..…等待…..……..……..……..………..………..……..……..……..
$ sudo make install
………………………………………..……..…同样等待安装完成………………………………………..…
注:若安装过程中出现问题,可能前两步安装没有到位,返回去检查。若无错误,安装成功,会在目录 /usr/local/Trolltech /QtEmbedded-4.5.3下看到对应安装好的文件。
toshiba@ubuntu:/usr/local/Trolltech/QtEmbedded-4.5.3/bin$ ls
moc
qmake rcc
uic
$ sudo mv qmake qmake-arm //修改qmake为qmake-arm
$ sudo vim ~/.bashrc //添加linux当前toshiba用户系统环境变量
在文件末尾加上环境变量
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.3/bin:$PATH
保存关闭,激活一下
$ source ~/.bashrc
测试
$ qmake-ar(按Tab建,会出现qmake-arm表示环境变量设置成功)
注:此步也比较重要,一个linux系统多安装几个QT程序的话,会出现相同的qmake命令,所以为了区分qmake,改名成qmake-arm,而后面添加环境变量是因为以后编译QT应用程序要用到。
可以检查ARM_QT and PC_QT 版本的区别
toshiba@ubuntu:~$
qmake-arm -v
QMake version 2.01a
Using Qt version 4.5.3 in /usr/local/Trolltech/QtEmbedded-4.5.3/lib
toshiba@ubuntu:~$
which qmake-arm
/usr/local/Trolltech/QtEmbedded-4.5.3/bin/qmake-arm
toshiba@ubuntu:~$ whereis
qmake-arm (ARM版QT)
qmake-arm:
toshiba@ubuntu:~$ qmake
-v
QMake version 2.01a
Using Qt version 4.8.1 in /usr/lib/i386-linux-gnu
toshiba@ubuntu:~$
whereis qmake (PC版QT)
qmake: /usr/bin/qmake /usr/bin/X11/qmake /opt/qt-4.8.3-x11/bin/qmake /usr/share/man/man1/qmake.1.gz
创建hello目录 ,进入目录里编写一个简单的测试程序,文件名为hello.cpp,在该文件目录下,进行工程编译,看是否能正确通编译
hello.cpp源码:
#include <QApplication>
#include <QDebug>
int main(int argc, char **argv)
{
qDebug("Hello, welcome to Qt world!");
return 0;
}
顺序执行以下操作:
1. 执行:qmake-arm -project hello.cpp
生成 hello.pro 工程文件
2. 执行:qmake-arm hello.pro
生成 Makefile 文件 (可以打开查看一下)
3. 执行:make
生成 hello.o hello 文件
最后再查看可执行文件 hello 属性(X86-PC机下面运行./hello 会产生错误)
toshiba@ubuntu:~/hello$
file
hello
hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped
……………………………………………………………………………………………………………………………………………………...
自此,要安装的程序已经安装完毕,接下来其他一些修改设置操作
请参考 http://blog.csdn.net/zjg555543/article/details/7755714