/****************************************************************************************/
/* 获取更多干货技能,点击 [这里-小编文章列表] 主页左侧扫码关注公众号 */
/***************************************************************************************/
上篇介绍了交叉编译的基本原理,以及交叉编译一个简单的HelloWorld程序,这篇将介绍如何交叉编译Qt程序。
由于Qt程序依赖的底层以及第三方的相关库太多(比如libGL.so库为OpenGL库,libX11.so库为系统图像库等等),因此在交叉编译时会出现各种问题,下面将其主要的问题归为如下三类:1. 编译器所依赖的库,在编译链接过程中,找到了宿主机的库了,导致文件格式不对,编译链接不成功,比如Qt编译是依赖于libGL.so库,而这个库在宿主机上的/usr/lib/目录下也存在,导致交叉编译器aarch64-linux-gnu-gcc在找库时,找到了宿主机的x86_64的库,所以肯定是链接不成功的。这里要说明一点:交叉编译所依赖的库,必须是与目标机架构一致的库,即libGL.so必须是ARM aarch64架构的