开发板在qt上环境搭建
2015-11-05 18:24
465 查看
文章一:
移植的步骤如下:
1、下载新版qt;
2、编译tslib;
3、编译qt;
4、配置编译后的qt,以便在主机上用qmake编译适用目标板的qt应用;
5、拷贝lib文件到目标板。
一、下载qt和tslib
比如要安装4.8.5版本,则下载 qt-everywhere-opensource-src-4.8.5.tar.gz,
米尔百度云下载(建议!~):http://pan.baidu.com/s/1i3j5cyT
官网下载地址:http://download.qt-project.org/archive/qt/。
还要下载tslib,
米尔百度云盘下载,地址(建议!~):http://pan.baidu.com/s/1fF8gI
官方下载地址:https://github.com/kergoth/tslib;
二、编译tslib
1、 建立工作目录
$ cd ~$ sudo make /usr/local/tslib
$ sudo make /usr/local/qt4.8.5-arm
$ mkdir qt-arm
$ cd qt-arm
复制代码
2、编译安装tslib
将下载的tslib源码复制到工作目录,并解压:
$ cp tslib-1.4.tar.gz ./
$ tar xzvf tslib1.4.tar.gz
$ cd tslib
复制代码
3、配置环境
先安装automake、libtool 两个工具:
$ sudo apt-get install automake libtool
复制代码
如果还没有交叉编译器的路径添加到PATH,要先把该路径添加到PATH中,本例使用的交叉编译器的路径为/opt/gcc-linaro-arm- inux-gnueabihf-4.7-2013.04-20130415_linux/bin(一定要指定自己目标板的交叉编译器路径),则执行以下命令:
$ export PATH=$PATH:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-2010415_linux/bin
复制代码
4、编译
配置tslib,安装路径可以通过 --prefix 参数设置,这里安装到/usr/local/tslib:
$ ./autogen.sh
$ ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --prefix=/usr/local/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes
复制代码
编译安装:
$ make
$ sudo make install
复制代码
完成后,tslib会按安装到/usr/local/tslib目录下。
进入下一步之前,先将/usr/local/tslib/etc/ts.conf文件第二行“#module_raw input”注释去掉,变为“module_raw input”,注意一定要顶格。
三、编译安装qt
1、解压
$ cd ~/qt-arm
$ cp qt-everywhere-opensource-src-4.8.5.tar.bz2 ./
$ tar xjvf qt-everywhere-opensource-src-4.8.5.tar.bz2
$ cd qt-everywhere-opensource-src-4.8.5
复制代码
2、指定交叉编译器
打开解压目录下的mkspecs/qws/linux-arm-g++/qmake.conf:
$ vi mkspecs/qws/linux-arm-g++/qmake.conf
复制代码
用vi打开qmake.conf 后,将arm-linux-全部替换arm-linux-gnueabihf-(注意:根据自己板子而定,并且一定要先将交叉编译器的路径加入PATH变量中),并加上-lts,然后保存退出,更改后如下:
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_STRIP = arm-linux-gnueabihf-strip<font face="黑体"></font>
复制代码
3、配置Qt
如下,先通过 --prefix 指定qt安装的路径,-I后面指定上一步tslib的include路径,-L后面指定上一步tslib的lib路径,
$ sudo mkdir /usr/local/qt4.8.5-arm
$ sudo ./configure --prefix=/usr/local/qt4.8.5-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit
-qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed
-qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/usr/local/tslib/include -L/usr/local/tslib/lib -confirm-license
复制代码
可以执行./configure --help查看参数的详细说明,根据需要来配置合适的参数
如果配置的时候提示:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
/home/gary/qt/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-g++.
说明找不到合适的交叉编译工具,请重新设置PATH环境变量。如果还是不能解决,再修改mkspecs/qws/linux-arm-g++/qmake.conf,将交叉编译工具改为绝对路径,如下:
# modifications to g++.conf
QMAKE_CC = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-objcopy
QMAKE_STRIP = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-strip<font face="黑体"></font>
复制代码
4、 编译安装
$ sudo make
$ sudo make install
复制代码
完成后,qt4.8.5即会安装到主机/usr/local/qt4.8.5-arm目录下。
四、配置编译后的qt,以便在主机上用qmake编译嵌入式qt应用
1、设置环境变量
在主机(如Ubuntu)当前终端下执行以下命令:
$ export PATH=$PATH:/usr/local/qt4.8.5-arm/bin
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/qt4.8.5-arm/lib
复制代码
或将以上命令添加到/etc/profile 文件中,这样系统登录时就自动设置好这些环境变量。
五、移植Qt到开发板
开发板上要使用的东西就2个,一个是编译后的tslib,一个是编译后qt目录下的lib目录。如下步骤将这两个目录拷贝到开发板上。
1、打包lib
我们Qt 安装完成之后,为解决符号链接的问题,可以利用先打包,然后直接解压到开发板的做法:
$ cd /usr/local/qt4.8.5-arm
$ tar -zcf lib.tar.gz lib
$ cd /usr/local
$tar -zcf tslib.tar.gz tslib
复制代码
将打包好的压缩文件 lib.tar.gz 和 tslib.tar.gz 复制到开发板,然后解压:
mkdir -p /usr/local/qt4.8.5-arm
tar xzvf lib.tar.gz -C /usr/local/qt4.8.5-arm
tar xzvf tslib.tar.gz -C /usr/loacal
复制代码
2、设置开发板上的环境变量
在目标板上新建一个名为setqtenv的文件,
vi setqtenv
复制代码
并加入以下内容:
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/usr/local/qt4.8.5-arm
export T_ROOT=/usr/local/tslib
export PATH=$T_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/ input/event0
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
复制代码
执行以下命令设置好qt环境变量的设置:
source setqtenv
复制代码
来自:http://bbs.elecfans.com/jishu_459569_1_1.html
文章二:http://www.waitang.com/article/19710.html
文章三:
整了好多天的Qt移植,今天终于弄出来了。记录一下学习过程,可把我闹心死了。
先说说Qt源码包,我刚装Qt的时候非常乱,又有x11的,又有embedded的,还有everywhere的。现在明白了,安装x11,可以开发在pc机下运行的应用程序,并且会生成一些Qt开发工具designer和qvfb。安装embedded,可以开发在开发板上运行的Qt应用程序。使用everywhere,需要解压三份,使用不同的configure参数可以安装不同平台的Qt,包括前面说的两种。分别为x11,x86,arm。x86的程序可以运行在qvfb里。这就可以不用开发板了。如果是windows装Qt的话,只需要下载个exe文件直接安装就行了。要配置环境变量。(最后再说)
再说说windows和linux下的Qt程序。
windows 下的Qt和Linux下的Qt可以一样用的,只要在新的系统里再重新使用qmake -project;qmake;make(windows下是mingw32-make)三个命令编译一下就行了。一定要设置好环境变量啊,否则找不到命令
一、.嵌入式Qt程序开发环境的搭建。
第一步:PC机安装Qt。
在ftp://ftp.qt.nokia.com/qt/source下载Qt的源码包。qt-everywhere-opensource-src-4.8.1.tar.gz 放到/root/Qt目录下。
tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz 命令解压,将解压后的目录名称改为qtx11.
#cd qtx11
#./configure
#gmake(这一步的时间相当长,四五个小时)
#gmake install
这是就安装好了,安装在/usr/local/Trolltech/Qt-4.8.1
#export PATH=” /usr/local/Trolltech/Qt-4.8.1/bin:$PATH”
#qmake -v(如能输出版本号,则说明安装成功)
接下来编译qvfb。
#cd /root/Qt/qtx11/tools/qvfb
#gmake
#cp /root/Qt/qtx11/bin/qvfb /bin
#qvfb(如果能出现一个虚拟窗口,那么说明编译成功了)
第二步:安装Qt for x86
#cd /root/Qt/
#tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz命令解压,将解压后的目录名称改为qtx86.
#cd qtx86
#./configure-embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb-qt-mouse-qvfb(这个命令可以使应用程序在qvfb里运行,节省开发板)
#gmake(很长时间)
#gmake install
安装目录在/usr/local/Trolltech/QtEmbedded-4.8.1/
#export PATH="/usr/local/Trolltech/QtEmbedded-4.8.1/bin:$PATH"
#qmake –v (如能输出版本号,则说明安装成功)
将上一步中编译好的qvfb复制到/usr/local/Trolltech/QtEmbedded-4.8.1/bin中。
第三步:安装交叉编译工具,arm-linux-gcc,我的版本是4.3.2
#tar xvzf arm-linux-gcc-4.3.2.tgz -C /(C需要大写,解压后安装在/usr/local/arm/4.3.2/
#vi /etc/profile (添加PATH)
添加如下内容exportPATH="$PATH:/usr/local/arm/4.3.2/bin"
#arm-linux-gcc -v (如果输出版本号说明安装成功)
第四步:交叉编译tslib-1.4
下载tslib-1.4.tar.gz放到/root/Qt/目录下
#cd /root/Qt/
#tar zxvf tslib-1.4.tar.gz
#cd tslib
#export CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc //设定C编译器
#export CXX=/usr/local/arm/4.3.2/bin/arm-linux-g++ //设定C++编译器
#./autogen.sh (如果运行有错误则需要安装autoconf、automake、libtool (如yuminstallautoconf))
#echo"ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache//避免检查ac_cv_func_malloc_0_nonnull
# ./configure--host=arm-linux--cache-file=arm-linux.cache-prefix=/usr/local/tslib
#gmake
#gmake install (安装在/usr/local/tslib里面)
#vi/usr/local/tslib/etc/ts.conf (修改ts.conf) 最后内容如下:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
(以下是在对应的开发版上使用,)
将上面整个/usr/local/tslib的内容下载到开发版里的对应路径下在(/usr/local/)
配置环境变量
添加如下内容:
exportTSLIB_ROOT=/usr/local/tslib
exportTSLIB_TSDEVICE=/dev/input/event0
exportTSLIB_CALIBFILE=/etc/pointercal
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
然后重启开发板,在终端输入./ts_calibrate会出现触摸屏五点校准画面,移植成功。
不过我输入命令后没有成功,只是把库函数都挪了过来。
第五步:安装Qt for arm
#cd /root/Qt/
#tar zxvf qt-everywhere-opensource-src-4.8.1.tar.gz命令解压,将解压后的目录名称改为qtARM.
#cd qtARM
#./configure –embedded arm –xplatformqws/linux-arm-g++-qt-mouse-tslib-I/usr/local/tslib/include-L/usr/local/tslib/lib
#gmake
#gmake install
安装目录在/usr/local/Trolltech/QtEmbedded-4.8.1-arm/
#exportPATH=”/usr/local/Trolltech/QtEmbedded-4.7.1-arm/bin:$PATH”
然后输入#qmake –v(如能输出版本号,则说明安装成功)
第六步:建立三个文件,用于三个环境变量的设置
#vi ~/.setenv-qtx11.sh
内容如下
export PATH=/usr/local/Trolltech/Qt-4.8.1/bin:$PATH
export QTDIR=/usr/local/Trolltech/Qt-4.8.1/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.8.1/lib:$LD_LIBRARY_PATH
#vi ~/.setenv-qtx86.sh
内容如下
export PATH=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/bin:$PATH
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/lib:$LD_LIBRARY_PATH
#vi ~/.setenv-qtARM.sh
内容如下
export PATH=/usr/local/Trolltech/QtEmbedded-4.8.1/bin:$PATH
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.8.1/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.1/lib:$LD_LIBRARY_PATH
接下来是如何使用:
假设已经有一个工程目录是hello。
(1)想在电脑上运行。
#source ~/.setenv-qtx11(使环境变量生效)
#cd hello
#qmake -project
#qmake
#make
#./可执行文件
这样就可以了
(2)想在qvfb上运行
#source ~/.setenv-qtx86(使环境变量生效)
#cd hello
#qmake -project
#qmake
#make
#qvfb &(打开qvfb,如果出错的话,就打开x11里的qvfb)
#./可执行文件 -qws
(3)想在开发板上运行
#source ~/.setenv-qtARM(使环境变量生效)
#cd hello
#qmake -project
#qmake
#make
这时的可执行文件就只能在开发板运行了。下载到开发板
(开发板里需要有Qt的库,直接从pc机里拷过来就行了,,将/usr/local/Trolltech/QtEmbedded-4.8.1/lib下的libQtGui.so*、libQtCore.so*、libQtNetwork.so*复制到开发板目录的/usr/lib目录下。将交叉编译器lib目录下的libstdc++.so*、libpng.so*复制到开发板目录/usr/lib目录下。)
设置开发板环境变量
#exportLD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/lib/:$LD_LIBRARY_PATH
这时可以执行编译好的Qt程序了。到程序所在目录下再执行
./可执行文件 -qws
上述内容为linux下的环境配置。
假设windows下安装的是Qt-2009-05,安装目录在D:/Qt/2009.05/
在我的电脑->属性->高级->环境变量 ,编辑path变量。添加如下内容
;D:\Qt\2009.05\mingw\bin;D:\Qt\2009.05\qt\bin
这样就可以使用qmake -project、qmake、mingw32-make命令了
来自:http://blog.sina.com.cn/s/blog_a2acdfc701015kt9.html
ARM QT移植详细步骤教程
米尔SAM9X5和A5D3X上默认的Qt版本是4.5.3,当这个版本的Qt库不能满足实际开发需求时,可通过此方法制定Qt开发、运行环境。移植的步骤如下:
1、下载新版qt;
2、编译tslib;
3、编译qt;
4、配置编译后的qt,以便在主机上用qmake编译适用目标板的qt应用;
5、拷贝lib文件到目标板。
一、下载qt和tslib
比如要安装4.8.5版本,则下载 qt-everywhere-opensource-src-4.8.5.tar.gz,
米尔百度云下载(建议!~):http://pan.baidu.com/s/1i3j5cyT
官网下载地址:http://download.qt-project.org/archive/qt/。
还要下载tslib,
米尔百度云盘下载,地址(建议!~):http://pan.baidu.com/s/1fF8gI
官方下载地址:https://github.com/kergoth/tslib;
二、编译tslib
1、 建立工作目录
$ cd ~$ sudo make /usr/local/tslib
$ sudo make /usr/local/qt4.8.5-arm
$ mkdir qt-arm
$ cd qt-arm
复制代码
2、编译安装tslib
将下载的tslib源码复制到工作目录,并解压:
$ cp tslib-1.4.tar.gz ./
$ tar xzvf tslib1.4.tar.gz
$ cd tslib
复制代码
3、配置环境
先安装automake、libtool 两个工具:
$ sudo apt-get install automake libtool
复制代码
如果还没有交叉编译器的路径添加到PATH,要先把该路径添加到PATH中,本例使用的交叉编译器的路径为/opt/gcc-linaro-arm- inux-gnueabihf-4.7-2013.04-20130415_linux/bin(一定要指定自己目标板的交叉编译器路径),则执行以下命令:
$ export PATH=$PATH:/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-2010415_linux/bin
复制代码
4、编译
配置tslib,安装路径可以通过 --prefix 参数设置,这里安装到/usr/local/tslib:
$ ./autogen.sh
$ ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --prefix=/usr/local/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes
复制代码
编译安装:
$ make
$ sudo make install
复制代码
完成后,tslib会按安装到/usr/local/tslib目录下。
进入下一步之前,先将/usr/local/tslib/etc/ts.conf文件第二行“#module_raw input”注释去掉,变为“module_raw input”,注意一定要顶格。
三、编译安装qt
1、解压
$ cd ~/qt-arm
$ cp qt-everywhere-opensource-src-4.8.5.tar.bz2 ./
$ tar xjvf qt-everywhere-opensource-src-4.8.5.tar.bz2
$ cd qt-everywhere-opensource-src-4.8.5
复制代码
2、指定交叉编译器
打开解压目录下的mkspecs/qws/linux-arm-g++/qmake.conf:
$ vi mkspecs/qws/linux-arm-g++/qmake.conf
复制代码
用vi打开qmake.conf 后,将arm-linux-全部替换arm-linux-gnueabihf-(注意:根据自己板子而定,并且一定要先将交叉编译器的路径加入PATH变量中),并加上-lts,然后保存退出,更改后如下:
# modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_STRIP = arm-linux-gnueabihf-strip<font face="黑体"></font>
复制代码
3、配置Qt
如下,先通过 --prefix 指定qt安装的路径,-I后面指定上一步tslib的include路径,-L后面指定上一步tslib的lib路径,
$ sudo mkdir /usr/local/qt4.8.5-arm
$ sudo ./configure --prefix=/usr/local/qt4.8.5-arm -opensource -release -shared -Declarative -importdir /opt/imports -fast -no-largefile -qt-sql-sqlite -qt3support -exceptions -xmlpatterns -no-glib -no-phonon -no-mmx -no-3dnow -no-sse -no-sse2 -svg -no-webkit
-qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -make tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -iconv -no-dbus -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed
-qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-kbd-qvfb -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/usr/local/tslib/include -L/usr/local/tslib/lib -confirm-license
复制代码
可以执行./configure --help查看参数的详细说明,根据需要来配置合适的参数
如果配置的时候提示:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
/home/gary/qt/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-g++.
说明找不到合适的交叉编译工具,请重新设置PATH环境变量。如果还是不能解决,再修改mkspecs/qws/linux-arm-g++/qmake.conf,将交叉编译工具改为绝对路径,如下:
# modifications to g++.conf
QMAKE_CC = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-objcopy
QMAKE_STRIP = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-strip<font face="黑体"></font>
复制代码
4、 编译安装
$ sudo make
$ sudo make install
复制代码
完成后,qt4.8.5即会安装到主机/usr/local/qt4.8.5-arm目录下。
四、配置编译后的qt,以便在主机上用qmake编译嵌入式qt应用
1、设置环境变量
在主机(如Ubuntu)当前终端下执行以下命令:
$ export PATH=$PATH:/usr/local/qt4.8.5-arm/bin
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/qt4.8.5-arm/lib
复制代码
或将以上命令添加到/etc/profile 文件中,这样系统登录时就自动设置好这些环境变量。
五、移植Qt到开发板
开发板上要使用的东西就2个,一个是编译后的tslib,一个是编译后qt目录下的lib目录。如下步骤将这两个目录拷贝到开发板上。
1、打包lib
我们Qt 安装完成之后,为解决符号链接的问题,可以利用先打包,然后直接解压到开发板的做法:
$ cd /usr/local/qt4.8.5-arm
$ tar -zcf lib.tar.gz lib
$ cd /usr/local
$tar -zcf tslib.tar.gz tslib
复制代码
将打包好的压缩文件 lib.tar.gz 和 tslib.tar.gz 复制到开发板,然后解压:
mkdir -p /usr/local/qt4.8.5-arm
tar xzvf lib.tar.gz -C /usr/local/qt4.8.5-arm
tar xzvf tslib.tar.gz -C /usr/loacal
复制代码
2、设置开发板上的环境变量
在目标板上新建一个名为setqtenv的文件,
vi setqtenv
复制代码
并加入以下内容:
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/usr/local/qt4.8.5-arm
export T_ROOT=/usr/local/tslib
export PATH=$T_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/ input/event0
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
复制代码
执行以下命令设置好qt环境变量的设置:
source setqtenv
复制代码
来自:http://bbs.elecfans.com/jishu_459569_1_1.html
文章二:http://www.waitang.com/article/19710.html
文章三:
整了好多天的Qt移植,今天终于弄出来了。记录一下学习过程,可把我闹心死了。
先说说Qt源码包,我刚装Qt的时候非常乱,又有x11的,又有embedded的,还有everywhere的。现在明白了,安装x11,可以开发在pc机下运行的应用程序,并且会生成一些Qt开发工具designer和qvfb。安装embedded,可以开发在开发板上运行的Qt应用程序。使用everywhere,需要解压三份,使用不同的configure参数可以安装不同平台的Qt,包括前面说的两种。分别为x11,x86,arm。x86的程序可以运行在qvfb里。这就可以不用开发板了。如果是windows装Qt的话,只需要下载个exe文件直接安装就行了。要配置环境变量。(最后再说)
再说说windows和linux下的Qt程序。
windows 下的Qt和Linux下的Qt可以一样用的,只要在新的系统里再重新使用qmake -project;qmake;make(windows下是mingw32-make)三个命令编译一下就行了。一定要设置好环境变量啊,否则找不到命令
一、.嵌入式Qt程序开发环境的搭建。
第一步:PC机安装Qt。
在ftp://ftp.qt.nokia.com/qt/source下载Qt的源码包。qt-everywhere-opensource-src-4.8.1.tar.gz 放到/root/Qt目录下。
tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz 命令解压,将解压后的目录名称改为qtx11.
#cd qtx11
#./configure
#gmake(这一步的时间相当长,四五个小时)
#gmake install
这是就安装好了,安装在/usr/local/Trolltech/Qt-4.8.1
#export PATH=” /usr/local/Trolltech/Qt-4.8.1/bin:$PATH”
#qmake -v(如能输出版本号,则说明安装成功)
接下来编译qvfb。
#cd /root/Qt/qtx11/tools/qvfb
#gmake
#cp /root/Qt/qtx11/bin/qvfb /bin
#qvfb(如果能出现一个虚拟窗口,那么说明编译成功了)
第二步:安装Qt for x86
#cd /root/Qt/
#tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz命令解压,将解压后的目录名称改为qtx86.
#cd qtx86
#./configure-embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb-qt-mouse-qvfb(这个命令可以使应用程序在qvfb里运行,节省开发板)
#gmake(很长时间)
#gmake install
安装目录在/usr/local/Trolltech/QtEmbedded-4.8.1/
#export PATH="/usr/local/Trolltech/QtEmbedded-4.8.1/bin:$PATH"
#qmake –v (如能输出版本号,则说明安装成功)
将上一步中编译好的qvfb复制到/usr/local/Trolltech/QtEmbedded-4.8.1/bin中。
第三步:安装交叉编译工具,arm-linux-gcc,我的版本是4.3.2
#tar xvzf arm-linux-gcc-4.3.2.tgz -C /(C需要大写,解压后安装在/usr/local/arm/4.3.2/
#vi /etc/profile (添加PATH)
添加如下内容exportPATH="$PATH:/usr/local/arm/4.3.2/bin"
#arm-linux-gcc -v (如果输出版本号说明安装成功)
第四步:交叉编译tslib-1.4
下载tslib-1.4.tar.gz放到/root/Qt/目录下
#cd /root/Qt/
#tar zxvf tslib-1.4.tar.gz
#cd tslib
#export CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc //设定C编译器
#export CXX=/usr/local/arm/4.3.2/bin/arm-linux-g++ //设定C++编译器
#./autogen.sh (如果运行有错误则需要安装autoconf、automake、libtool (如yuminstallautoconf))
#echo"ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache//避免检查ac_cv_func_malloc_0_nonnull
# ./configure--host=arm-linux--cache-file=arm-linux.cache-prefix=/usr/local/tslib
#gmake
#gmake install (安装在/usr/local/tslib里面)
#vi/usr/local/tslib/etc/ts.conf (修改ts.conf) 最后内容如下:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
(以下是在对应的开发版上使用,)
将上面整个/usr/local/tslib的内容下载到开发版里的对应路径下在(/usr/local/)
配置环境变量
添加如下内容:
exportTSLIB_ROOT=/usr/local/tslib
exportTSLIB_TSDEVICE=/dev/input/event0
exportTSLIB_CALIBFILE=/etc/pointercal
exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
然后重启开发板,在终端输入./ts_calibrate会出现触摸屏五点校准画面,移植成功。
不过我输入命令后没有成功,只是把库函数都挪了过来。
第五步:安装Qt for arm
#cd /root/Qt/
#tar zxvf qt-everywhere-opensource-src-4.8.1.tar.gz命令解压,将解压后的目录名称改为qtARM.
#cd qtARM
#./configure –embedded arm –xplatformqws/linux-arm-g++-qt-mouse-tslib-I/usr/local/tslib/include-L/usr/local/tslib/lib
#gmake
#gmake install
安装目录在/usr/local/Trolltech/QtEmbedded-4.8.1-arm/
#exportPATH=”/usr/local/Trolltech/QtEmbedded-4.7.1-arm/bin:$PATH”
然后输入#qmake –v(如能输出版本号,则说明安装成功)
第六步:建立三个文件,用于三个环境变量的设置
#vi ~/.setenv-qtx11.sh
内容如下
export PATH=/usr/local/Trolltech/Qt-4.8.1/bin:$PATH
export QTDIR=/usr/local/Trolltech/Qt-4.8.1/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.8.1/lib:$LD_LIBRARY_PATH
#vi ~/.setenv-qtx86.sh
内容如下
export PATH=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/bin:$PATH
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.1-arm/lib:$LD_LIBRARY_PATH
#vi ~/.setenv-qtARM.sh
内容如下
export PATH=/usr/local/Trolltech/QtEmbedded-4.8.1/bin:$PATH
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.8.1/
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.1/lib:$LD_LIBRARY_PATH
接下来是如何使用:
假设已经有一个工程目录是hello。
(1)想在电脑上运行。
#source ~/.setenv-qtx11(使环境变量生效)
#cd hello
#qmake -project
#qmake
#make
#./可执行文件
这样就可以了
(2)想在qvfb上运行
#source ~/.setenv-qtx86(使环境变量生效)
#cd hello
#qmake -project
#qmake
#make
#qvfb &(打开qvfb,如果出错的话,就打开x11里的qvfb)
#./可执行文件 -qws
(3)想在开发板上运行
#source ~/.setenv-qtARM(使环境变量生效)
#cd hello
#qmake -project
#qmake
#make
这时的可执行文件就只能在开发板运行了。下载到开发板
(开发板里需要有Qt的库,直接从pc机里拷过来就行了,,将/usr/local/Trolltech/QtEmbedded-4.8.1/lib下的libQtGui.so*、libQtCore.so*、libQtNetwork.so*复制到开发板目录的/usr/lib目录下。将交叉编译器lib目录下的libstdc++.so*、libpng.so*复制到开发板目录/usr/lib目录下。)
设置开发板环境变量
#exportLD_LIBRARY_PATH=/usr/local/tslib/lib:/usr/lib/:$LD_LIBRARY_PATH
这时可以执行编译好的Qt程序了。到程序所在目录下再执行
./可执行文件 -qws
上述内容为linux下的环境配置。
假设windows下安装的是Qt-2009-05,安装目录在D:/Qt/2009.05/
在我的电脑->属性->高级->环境变量 ,编辑path变量。添加如下内容
;D:\Qt\2009.05\mingw\bin;D:\Qt\2009.05\qt\bin
这样就可以使用qmake -project、qmake、mingw32-make命令了
来自:http://blog.sina.com.cn/s/blog_a2acdfc701015kt9.html
相关文章推荐
- Qt创建first工程报错Circular <- first dependency dropped
- Qt报错 /usr/bin/ld: error: cannot find -lGL
- Qt启动画面(类似Office)
- Pyqt实现无边框窗口拖动及改变窗口大小
- 每日一笔记之2:QT之坐标系统:
- qt如何用指定程序打开当前路径下的文件
- Ubuntu下 嵌入式Qt开发环境的搭建
- 使用Qt开发中国象棋(六):将军和死棋检测
- QT笔记:数据库总结(三)之SQL模型类-QSqlTableModel模型
- QT笔记:数据库总结(一)
- QT5入门之31-QT QTreeWidget
- QT5入门之32-QT QTtableWidget
- QT5入门之31-QT QListWidget
- QTP自动化测试框架简述
- 关于编写QT国际化程序中需要注意的问题
- Qt界面跳转中的超前引用问题
- CUDA + QT Creator + Win7的集成
- Qt Creator 配置Msvc 2012的调试器
- qt-opensource-windows-x86-vs2010-4.8.6 + qt-creator-windows-opensource-2.8.0
- QT设置窗口背景