转载地址:http://home.eeworld.com.cn/home.php?mod=space&uid=722063&do=blog&id=557502
![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1496411708714&di=46d56b04b2dd37c2b2fdf6fa243da66f&imgtype=jpg&src=http%3A%2F%2Fwww.mianfeiwendang.com%2Fpic%2F7566b97ac188ca9638d83b92%2F1-427-png_6_0_0_40_186_389_240_892.83_1263-692-0-1114-692.jpg)
移植过程中参考:http://bbs.elecfans.com/jishu_459569_1_1.html
1.下载qt和tslib
我编译成功的是qt4.8.5,qt4.8.5以及tslib在以下连接均有分享
链接:http://pan.baidu.com/s/1mhCnkhE 密码:8ubt
2.编译tslib
首先建立工作目录,我建立的目录为 /usr/local/tslib
![](https://i-blog.csdnimg.cn/blog_migrate/b6b2c7ce9a3791b158e3eed505a4adc2.png)
接着安装automake和libtool工具
![](https://i-blog.csdnimg.cn/blog_migrate/2957c9ac3379862ab20307bbc20056f8.png)
这时候,需要检查交叉编译器的路径是否添加: 输入 vim /etc/profile
![](https://i-blog.csdnimg.cn/blog_migrate/253eec9e4da5a697c1902b7605946a55.png)
如果没有添加,就按照如上格式添加自己的交叉编译路径
最后进行编译,输入以下命令
./autogen.sh
--prefix后选择的是安装路径
./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编译,make install安装即可,此时/usr/local/tslib下已有安装文件
![](https://i-blog.csdnimg.cn/blog_migrate/0bb4a0be120916edd712cab1ace1b0be.png)
进入下一步之前,先将/usr/local/tslib/etc/ts.conf文件第二行“#module_raw input”注释去掉,变为“module_raw input”,注意一定要顶格。
3.编译安装qt
首先建立工作目录,我建立的工作目录是/usr/local/qt4.8.5-arm
![](https://i-blog.csdnimg.cn/blog_migrate/62dc5a5ebb19de71ce4844da2a6cb273.png)
然后指定交叉编译工具,在解压目录下的mkspecs/qws/linux-arm-g++/qmake.conf,配置为如下格式
![](https://i-blog.csdnimg.cn/blog_migrate/dc275810cd514c5e395c14a3bb6eeba9.png)
交叉编译工具根据自己的板子,可能和我的有所不同,但是要确保交叉编译器的路径加到了PATH中
接着配置QT,--prefix 指定qt安装的路径,-I后面指定上一步tslib的include路径,-L后面指定上一步tslib的lib路径:
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
然后编译 make,编译会花好几个小时(我就是在睡觉前编译的),编译成功后如下:
![](https://i-blog.csdnimg.cn/blog_migrate/ae3b1372eb44a8875dda495bfa552a63.jpeg)
然后 make install,qt就安装到/usr/local/qt4.8.5-arm下了
![](https://i-blog.csdnimg.cn/blog_migrate/9cf5ca62d17a1389265c64ac40f7f3c2.png)
然后再次配置环境变量,添加以下内容
![](https://i-blog.csdnimg.cn/blog_migrate/bdf45806bd835f8d057b48be7eba3957.png)
然后 source /etc/profile,让环境变量生效即可
到这里为止,整个过程已经完成了50%以上了,快打开 qtcreator 看一下成果
5.qtcreator构建套件
此时打开qtcreator,在选项里手动添加qmake,qmake目录为qt工作目录下的bin文件
![](https://i-blog.csdnimg.cn/blog_migrate/333464538412200d049a9735c5320f09.png)
然后在编译下添加自己的交叉编译器
![](https://i-blog.csdnimg.cn/blog_migrate/f03e83e1de818b33ba817850b7b6523f.png)
如果这个时候,qt version提示没有安装qmlviewer
需要把/usr/bin目录下qml开头的文件都复制到qt安装目录的bin下:
sudo cp /usr/bin/qml* /usr/local/qt4.8.5-arm/bin
这个时候嵌入式linux的qt4.8.5就配置完成了
直接构建套件即可:
![](https://i-blog.csdnimg.cn/blog_migrate/d74e039980c525825dd433112dd34043.png)
笔者进行到这里的时候灰常开心
哈~哈~哈~
希望大家都能很顺利的进行到这里,接下来就是往开发板移植qt
6.移植到开发板
将编译后的tslib和qt目录下的bin打包,最好打包为.tar 或者 .zip文件(我最开始打包为.tar.gz,开发板上没办法解压),然后通过scp命令(需要配置ssh)传到开发板上,然后解压到自己建立的工作目录下,我还是建立在了/usr/local/目录下(如图)
![](https://i-blog.csdnimg.cn/blog_migrate/01234b3dc29269826c2ec480805ca807.png)
然后配置环境变量,vi /etc/profile
其中,qt的配置如下(#后面的是注释掉的)
![](https://i-blog.csdnimg.cn/blog_migrate/32e289597314e622a0b0e6dcaf4b170d.png)
具体每句话什么意思就不细说了,注意把路径配置正确
tslib配置如下:
![](https://i-blog.csdnimg.cn/blog_migrate/4d99d329649abe43cc32c4a23683d141.png)
每句话的意思就不说了(写了一晚上了,略累),注意把路径配置正确
然后source环境变量就行了。
到这里已经完成90%了,长呼一口气~~
7.一键远程调试
此时我们再次打开qtcreator,在选项设备下添加自己板子的ip地址
![](https://i-blog.csdnimg.cn/blog_migrate/e11e7fb0cae19d575071602f90ca24bc.png)
配置完成后,可以点击旁边的test测试
![](https://i-blog.csdnimg.cn/blog_migrate/96a4530953372eaf9fd58877de8c09d1.png)
测试成功后,离成功只剩一步了!!!!
首先在开发板建立qt的运行文档,我直接建立在跟目录下
![](https://i-blog.csdnimg.cn/blog_migrate/82f611643b32dec98d54edfd0db9eb25.png)
然后在.pro文件下添加该目录
![](https://i-blog.csdnimg.cn/blog_migrate/18efb09fe7fa1ba51843dc712eb7f7fb.png)
保存.pro文件后,在项目下可以看到如下结果
![](https://i-blog.csdnimg.cn/blog_migrate/f695cac903be4d3463352e828254eda8.png)
接下来就是见证奇迹的时刻!!!!
直接编译运行(随便一个QT项目)
![](https://i-blog.csdnimg.cn/blog_migrate/31a89c473917cafe48e721135698f752.png)
此时看开发板,程序已经在运行了。
![](https://i-blog.csdnimg.cn/blog_migrate/9d79b4a56e6b8c3fd303b3c8be4fc71c.jpeg)
8.总结
编译qt到开发板还是比较费劲的……
过程中遇到很多坑,有些已经记不清了,希望这个帖子可以帮到一些初学者。
由于写了太长时间且本人水平有限……如果有错,还请各位大佬及时指正,以免造成误导。