移植qt-4.6.3到mini2440(对比http://blog.chinaunix.net/uid-20539088-id-115752.html会明白更多)
qt-4.6.3移植到ARM
1.下载源码及开发工具
1.1 qt库源码
http://qt-project.org/downloads
qt-everywhere-opensource-src-4.6.3.tar.gz
1.2 qt creator
如果需要使用IDE,就下载安装对应操作系统的二进制安装文件
实际并不是必须的,可以略过此步
1.3 tslib库源码
tslib-1.4.tar.gz
这是触摸屏的库源码
1.4 交叉编译工具链
使用开发板提供的交叉编译工具链即可
arm-linux-gcc-4.4.3.tar.gz
2.配置与编译
PS:以下操作都默认使用root用户
2.1 安装交叉编译工具链
把arm-linux-gcc-4.4.3.tar.gz放到/tmp 目录下
#tar xzvf arm-linux-gcc-4.4.3.tar.gz -C /
#gedit /root/.bashrc
编辑/root/.bashrc文件,
在最后一行 export PATH=$PATH:将arm-linux-gcc-4.4.3/bin安装路径写在这里
注销系统
重新登录
#arm-linux-gcc -v 可以看到版本信息
2.2 安装tslib-1.4
这是个触摸屏的库文件,qt4只支持tslib-1.4。
#tar xvzf tslib-1.4.tar.gz
#cd tslib
#./autogen.sh
!!!!失败!!!!需要安装autoconf automake libtool
#./configure --prefix=/usr/local/tslib --host=arm-linux
ac_cv_func_malloc_0_nonnull=yes
#make
#make install
tslib被安装到了/usr/local/tslib,下面编译arm版本库时需要使用
2.3 准备版本备份
将qt-everywhere-opensource-src-4.6.3.tar.gz复制3份
分别解压到三个文件夹
qt-4.6.3-pc
上位机上基于X11的版本
qt-4.6.3-x86
基于x86嵌入式系统的版本,使用qvfb工具模拟
qt-4.6.3-arm
基于arm的嵌入式版本
对于运行在arm上的程序移植,实际只需要qt-4.6.3-arm,其他两个也可以暂时不用
但建议至少再安装一份qt-4.6.3-pc,方便程序调试
#tar xzf qt-everywhere-opensource-src-4.6.3.tar.gz
得到qt-everywhere-opensource-src-4.6.3文件夹---------时间3min也较长,可加-v
#cp -rf qt-everywhere-opensource-src-4.6.3 ./qt-4.6.3-pc
#cp -rf qt-everywhere-opensource-src-4.6.3 ./qt-4.6.3-x86 可暂时不用
#cp -rf qt-everywhere-opensource-src-4.6.3 .
/qt-4.6.3-arm
此方法不合适,硬盘空间空间明显不够,(新方法:
#tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz
#mv qt-everywhere-opensource-src-4.6.3 qt-everywhere-opensource-src-4.6.3-pc(-X86(-arm)))
2.4 上位机版本(装有linux系统的pc机)
进入qt-4.6.3-pc目录
#cd qt-4.6.3-pc
配置编译及安装
#./configure
(!!!!出错:Basic XLib functionality test failed!!!
在./configure前主动装好下面3个包,基本上就万事大吉了sudo
apt-get install libX11-dev libXext-dev libXtst-dev)
#gmake
( !!!!!出错gmake: g++: Command not found
gmake: *** [project.o] Error 127
!!!!!!解决方法yum install gcc gcc-c++)
#gmake install
时间会很长
完成后,会默认安装在 /usr/local/Trolltech/Qt-4.6.3
现在已经可以使用qt在上位机上开发应用程序了
qt的核心是qt库及相关代码处理工具,所以并不需要IDE 如Qt Creator
可以直接写一个hello.cpp代码进行测试
下面会详细说明
2.5 x86嵌入式版本(张:X86是个很好的东西?这个可以暂时不做 网:在pc机已淘汰)
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-x86 -embedded x86 -qvfb
2.6 arm嵌入式版本
进入qt-4.6.3-arm目录
#cd qt-4.6.3-arm
配置编译及安装(编译选择记录在arm-compile.sh中)
#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm -release -shared -little-endian -no-qt3support -no-libtiff -no-libmng -qt-libjpeg -qt-gif -qt-zlib -qt-libpng -no-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 4,8,16,32 -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
(!!!!出错需加-force-pkg-config妹的,可无视该错误,浪费老子时间)
#gmake
#gmake install
时间会很长
完成后,会安装在 /usr/local/Trolltech/QtEmbedded-4.6.3-arm
其中包含了arm版本的qt库和相关开发工具(主要是qmake工具)
3. 开发应用程序
开发qt应用程序可以使用IDE环境(qt creator),但其实质还是调用对应版本库的编译和处理工具,所以此处仅举例说明命令行编译方法,IDE配置方法自行阅读文档摸索
(根据上面提供的网址下载qt creator在linux下的安装文件qt-creator-linux-x86-opensource-2.6.1.bin,下面的安装就比较简单了,首先更改文件属性,使它可执行。
chmod u+x qt-creator-linux-x86-opensource-2.6.1.bin
然后运行sudo ./qt-creator-linux-x86-opensource-2.6.1.bin
接下来就是非常熟悉的安装界面了。
问题1--QGtkStyle was unable to detect the current GTK+ theme
在目录/etc/X11/xinit/中, 在文件.xinitrc中添加一行(启动图形界面的配置文件就是 ~/.xinitrc ) :export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
并且gtk-theme-name="myTheme"该问题即可解决。)
3.1 PC平台qt应用程序
建一个新文件夹
#mkdir qt_pc
#cd qt_pc
配置开发环境(必要的环境变量)
#. setenv-x11.sh
(setenv-x11.sh放在当前目录里)(!!!!错误!!!!吧.改为source)
setenv-x11.sh的内容
PATH=/usr/local/Trolltech/Qt-4.6.3/bin:$PATH
QTDIR=/usr/local/Trolltech/Qt-4.6.3
MAINPATH=$QTDIR/man:$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH QTDIR MAINPATH
LD_LIBRARY_PATH
#gedit hello.cpp
hello.cpp内容
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QPushButton b("Hello World !");
b.show();
QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));
return app.exec();
}
#qmake -project
#qmake
#make
生成可执行文件hello(我的是qt_pc )
#./hello
即可看见应用程序窗口
3.1 arm平台qt应用程序
建一个新文件夹
#mkdir qt_arm
#cd qt_arm
配置开发环境(必要的环境变量)
#. setenv-arm.sh
(setenv-arm.sh放在当前目录里)
setenv-arm.sh的内容
PATH=/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin:$PATH
QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
MAINPATH=$QTDIR/man:$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH QTDIR MAINPATH
LD_LIBRARY_PATH
将hello.cpp拷贝过来,无需做任何修改
#qmake -project
#qmake
#make
生成可执行文件hello
此hello程序是基于ARM平台的可执行文件
将其拷贝到mini2440上即可运行
4. qt库移植与环境变量设置
mini2440上实际已经移植好了qt-4.6.3-arm的库,所以此步可以省略
程序运行环境设置可以参考 /bin/qt4 这是一个shell脚本
注意在启动配置项中取消系统自启动qtopia的内容
qt-4.6.3移植到ARM
1.下载源码及开发工具
1.1 qt库源码
http://qt-project.org/downloads
qt-everywhere-opensource-src-4.6.3.tar.gz
1.2 qt creator
如果需要使用IDE,就下载安装对应操作系统的二进制安装文件
实际并不是必须的,可以略过此步
1.3 tslib库源码
tslib-1.4.tar.gz
这是触摸屏的库源码
1.4 交叉编译工具链
使用开发板提供的交叉编译工具链即可
arm-linux-gcc-4.4.3.tar.gz
2.配置与编译
PS:以下操作都默认使用root用户
2.1 安装交叉编译工具链
把arm-linux-gcc-4.4.3.tar.gz放到/tmp 目录下
#tar xzvf arm-linux-gcc-4.4.3.tar.gz -C /
#gedit /root/.bashrc
编辑/root/.bashrc文件,
在最后一行 export PATH=$PATH:将arm-linux-gcc-4.4.3/bin安装路径写在这里
注销系统
重新登录
#arm-linux-gcc -v 可以看到版本信息
2.2 安装tslib-1.4
tslib被安装到了/usr/local/tslib,下面编译arm版本库时需要使用
2.3 准备版本备份
将qt-everywhere-opensource-src-4.6.3.tar.gz复制3份
分别解压到三个文件夹
qt-4.6.3-pc
qt-4.6.3-x86
qt-4.6.3-arm
对于运行在arm上的程序移植,实际只需要qt-4.6.3-arm,其他两个也可以暂时不用
但建议至少再安装一份qt-4.6.3-pc,方便程序调试
#tar xzf qt-everywhere-opensource-src-4.6.3.tar.gz
得到qt-everywhere-opensource-src-4.6.3文件夹---------时间3min也较长,可加-v
#cp -rf qt-everywhere-opensource-src-4.6.3 ./qt-4.6.3-pc
#cp -rf qt-everywhere-opensource-src-4.6.3 ./qt-4.6.3-x86 可暂时不用
#cp -rf qt-everywhere-opensource-src-4.6.3 .
/qt-4.6.3-arm
此方法不合适,硬盘空间空间明显不够,(新方法:
#tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz
#mv qt-everywhere-opensource-src-4.6.3 qt-everywhere-opensource-src-4.6.3-pc(-X86(-arm)))
2.4 上位机版本(装有linux系统的pc机)
进入qt-4.6.3-pc目录
#cd qt-4.6.3-pc
配置编译及安装
#./configure
#gmake
#gmake install
时间会很长
完成后,会默认安装在 /usr/local/Trolltech/Qt-4.6.3
现在已经可以使用qt在上位机上开发应用程序了
qt的核心是qt库及相关代码处理工具,所以并不需要IDE 如Qt Creator
可以直接写一个hello.cpp代码进行测试
下面会详细说明
2.5 x86嵌入式版本(张:X86是个很好的东西?这个可以暂时不做 网:在pc机已淘汰)
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-x86 -embedded x86 -qvfb
2.6 arm嵌入式版本
进入qt-4.6.3-arm目录
#cd qt-4.6.3-arm
配置编译及安装(编译选择记录在arm-compile.sh中)
#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm -release -shared -little-endian -no-qt3support -no-libtiff -no-libmng -qt-libjpeg -qt-gif -qt-zlib -qt-libpng -no-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 4,8,16,32 -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
(!!!!出错需加-force-pkg-config妹的,可无视该错误,浪费老子时间)
#gmake
#gmake install
时间会很长
完成后,会安装在 /usr/local/Trolltech/QtEmbedded-4.6.3-arm
其中包含了arm版本的qt库和相关开发工具(主要是qmake工具)
3. 开发应用程序
开发qt应用程序可以使用IDE环境(qt creator),但其实质还是调用对应版本库的编译和处理工具,所以此处仅举例说明命令行编译方法,IDE配置方法自行阅读文档摸索
(根据上面提供的网址下载qt creator在linux下的安装文件qt-creator-linux-x86-opensource-2.6.1.bin,下面的安装就比较简单了,首先更改文件属性,使它可执行。
chmod u+x qt-creator-linux-x86-opensource-2.6.1.bin
然后运行sudo ./qt-creator-linux-x86-opensource-2.6.1.bin
接下来就是非常熟悉的安装界面了。
问题1--QGtkStyle was unable to detect the current GTK+ theme
在目录/etc/X11/xinit/中, 在文件.xinitrc中添加一行(启动图形界面的配置文件就是 ~/.xinitrc ) :export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
并且gtk-theme-name="myTheme"该问题即可解决。)
3.1 PC平台qt应用程序
建一个新文件夹
#mkdir qt_pc
#cd qt_pc
配置开发环境(必要的环境变量)
#. setenv-x11.sh
setenv-x11.sh的内容
PATH=/usr/local/Trolltech/Qt-4.6.3/bin:$PATH
QTDIR=/usr/local/Trolltech/Qt-4.6.3
MAINPATH=$QTDIR/man:$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH QTDIR MAINPATH
#gedit hello.cpp
hello.cpp内容
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QPushButton b("Hello World !");
b.show();
QObject::connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));
return app.exec();
}
#qmake -project
#qmake
#make
生成可执行文件hello(我的是qt_pc )
#./hello
即可看见应用程序窗口
3.1 arm平台qt应用程序
建一个新文件夹
#mkdir qt_arm
#cd qt_arm
配置开发环境(必要的环境变量)
#. setenv-arm.sh
setenv-arm.sh的内容
PATH=/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin:$PATH
QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
MAINPATH=$QTDIR/man:$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH QTDIR MAINPATH
将hello.cpp拷贝过来,无需做任何修改
#qmake -project
#qmake
#make
生成可执行文件hello
此hello程序是基于ARM平台的可执行文件
将其拷贝到mini2440上即可运行
4. qt库移植与环境变量设置
mini2440上实际已经移植好了qt-4.6.3-arm的库,所以此步可以省略
程序运行环境设置可以参考 /bin/qt4 这是一个shell脚本
注意在启动配置项中取消系统自启动qtopia的内容