- 硬件平台:友善之臂Exynos4412
- 系统:linux-3.5-20160514
- 编译器:arm-linux-gcc-4.5.1
- 虚拟机:centos7 64位
- 虚拟机平台:vmware16
- qtcreator:qt5.0.0
- qt交叉编译环境:arm-qte-4.8.5
已有图形化界面的虚拟机,即可跳过第一步
一、在VM中安装Centos 7的X-windows界面(推荐KDE版本)
1、新建虚拟机
关闭之后,选择完成即可
2、安装KDE界面
此时在不需要动,等待出现选择语言界面即可!!!
最后在自己检查一遍是否选择正确!!!!
现在等待安装完成即可,安装完成后重启即可;
二、在Centos 7中配置编译 QT-X11 环境
在编译环境之前自行安装arm-linux-gcc和linux内核,可以参考以下文章:
qt-everywhere-opensource-src-4.7.3.tar.gz:
链接: https://pan.baidu.com/s/1S3t39-SuDyhKOGxDFaMTVA?pwd=z2pb 提取码: z2pb
1、创建目录
cd /
mkdir uptech
cd uptech/
mkdir QT4/
cd QT4/
mkdir for_x11
2、解压
将qt-everywhere-opensource-src-4.7.3.tar.gz传入到for_x11目录底下,然后进行解压
tar xvf qt-everywhere-opensource-src-4.7.3
cd qt-everywhere-opensource-src-4.7.3/
3、编译环境
(1)、执行 configure 文件(先看所需要下载的库,之后再编译)
./configure -prefix /usr/local/Trolltech/Qt-x11-4.7.3
等待几分钟之后编译好就行。
在执行的过程中会报错以下错误,只需下载库即可。
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /uptech/QT4/for_x11/qt-everywhere-opensource-src-4.7.3/mkspecs/linux-g++-64.
解决办法:
可以看出在编译的时候缺lib库
则可以运行以下命令:
如果是64位机:yum install libXtst-devel
如果是32位机:yum install libXtst-devel.i686
(2) 编译 QT-X11 库(先看所需要下载的库,之后再编译)
上一步编译好之后接着执行以下
gmake -j4
这个编译时间按自己电脑性能吧,反正挺长时间,我编译了差不多四十多分钟。 等待完成即可
在编译的时候会报以下错误:
/usr/bin/ld: cannot find -lXrender
collect2: ld returned 1 exit status
make[1]: *** […/…/…/…/lib/libQtWebKit.so.4.7.3] 错误 1
make[1]:Leaving directory `/home/debian/桌面/qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore’
make: *** [sub-webkit-make_default-ordered] 错误 2
下载以下库即可:
如果是64位机:yum install libXrender*
如果是32位机:yum install libXrender-devel.i686
(3)安装 QT-X11 库
gmake install
此时便会在/usr/local/目录下产生 Trolltech/Qt-x11-4.7.3 目录。
4、试运行 QT-X11 环境自带例程
cd examples/widgets/wiggly/
ls
以下在虚拟机里运行,别再xshell里运行
./wiggly
出来以下图片说明安装成功:
三、编译开发板所需的qt交叉编译环境
arm-qte-4.8.5.rar
链接: https://pan.baidu.com/s/1Z3r_fRQzYb4DOpUACODF6w?pwd=b7x6 提取码: b7x6
1、创建目录
cd uptech/QT4/
mkdir for_arm
cd for_arm
2、编译
将下载的rar文件在windows下解压,并且上传到for_arm文件夹中
因为我们是在windows下解压的,所以传进来之后先赋权限
chmod 777 build.sh
之后直接执行以下
./build.sh
这个编译时间更长,应该要一个小时以上,耐心等待编译完成即可。
四、安装qt_creator
在以下网站下载你所需的qt版本:
在其中选择版本之后下载后缀名为.run的文件:
将下载好的文件传入虚拟机,我下载的是5.0.0版本
先给文件赋权限
chmod 777 qt-linux-opensource-5.0.0-x86_64-offline.run
然后在虚拟机里面运行以下:
./qt-linux-opensource-5.0.0-x86_64-offline.run
等待完成即可
当第一次把文件传到虚拟机的qt中会报以下错,所以我们需要改一下
这是因为 Qt 找不到 OpenGL 的动态链接库(libGL.so)。
Qt 默认在 /usr/lib/ 目录下查找动态链接库,但是很多 Linux 发行版将 OpenGL 链接库放在其它目录,例如我使用的是 CentOS 7,OpenGL 链接库位于 /usr/lib64/ 目录,而对于 Ubuntu,OpenGL 链接库位于 /usr/lib/i386-linux-gnu/mesa/ 目录。只要我们把 libGL.so 拷贝到 /usr/lib/ 目录,或者在 /usr/lib/ 目录下为 libGL.so 创建一个链接,就能解决问题。显然第二种办法更好
总起来说,我们需要在 /usr/lib/ 目录下为 OpenGL 链接库创建一个链接,并去掉版本号。
如果你不知道当前 Linux 系统中 libGL.so 的具体路径,可以使用locate libGL
命令或find /usr -name libGL*
命令查找,然后使用ln -s
创建链接。解决方法:
#查找 libGL 所在位置
[root@localhost ~]# locate libGL
/usr/lib64/libGL.so
/usr/lib64/libGL.so.1
/usr/lib64/libGL.so.1.2.0
/usr/share/doc/mesa-libGL-9.2.5
/usr/share/doc/mesa-libGL-9.2.5/COPYING
#创建链接
[root@localhost ~]# ln -s /usr/lib64/libGL.so.1 /usr/lib/libGL.so
在重新编译文件就不会报错了
五、配置交叉编译环境
1、在虚拟机的qt配置编译环境
将windows写好的qt文件传进去,并且打开文件。
选择qt编译环境。
只需构建即可,在文件夹同一级别文件夹下出现构建的文件夹。
利用ftp传输编译好的文件到开发板即可
注意:在开发板运行编译好的文件时,需要在执行文件后面加 -qws
比如:
./area -qws
以上就是Linux安装qt,并且配置交叉编译环境链的全过程。