交叉编译Qt5.12.7到NanoPC-T4或者NanoPi-M4

0.具体详细的配置过程这里没写出来,都是参考下面两篇博文,然后做了相应的修改的。

0.1 按照附件那个配置文件来编译Qt的话,是已经包含了sqlite数据库的。假如你的程序输出 QSqlDatabase::drivers() 发现没有,那么很可能是因为你的整个编译后的qt文件夹放置得不对。记得在ARM板上,要把整个文件夹放到和你配置时的路径一致。
比如说我配置完Qt,make, make install 之后,Qt库就被装到了电脑的/opt/rootfs-rk64one/Qt5.12.7_ARM中,因为在配置文件中,我的systemroot为/opt/rootfs-rk64one 那么,实际上板子上要放到/Qt5.12.7_ARM下。如下面两张图所示:
交叉编译Qt5.12.7到NanoPC-T4或者NanoPi-M4_第1张图片
交叉编译Qt5.12.7到NanoPC-T4或者NanoPi-M4_第2张图片
1.配置过程参考这篇博文
https://blog.csdn.net/qq_43248127/article/details/104077645
上面这篇博文中的那个改变软链接的py语句其实是有问题的(语法上,可能是作者粘贴在博客上时出了问题。),我对脚本进行了修正。在这里。

2.我在按照上面的博文配置后,编译时出现了(OpenGL)undefined reference to `dlsym’的问题。于是又参考这个
https://stackoverflow.com/questions/43815010/undefined-reference-to-dlsym/48240786#48240786
找到了原因
交叉编译Qt5.12.7到NanoPC-T4或者NanoPi-M4_第3张图片
出现上述问题的原因很有趣,因为这个libdl.so是一个软连接,而且还是绝对路径的。那么我们将板子的文件系统拷贝到电脑上时,会破坏了这个文件系统的绝对文件路径,所以这个连接就失效了,所以编译时才会说找不到库。

3.最终编译好之后,试图用这个Qt来编译一个简单的程序,却报如下的错(有时候编译完又不会报这个错误,难道和install有关?):
在这里插入图片描述
原因是还要手动指定此时的架构路径 ,解决方法如下:
在这里插入图片描述

你可能感兴趣的:(Qt相关,NanoPC-T4)