美文网首页QT5 GUI开发
qt5应用程序如何交叉编译

qt5应用程序如何交叉编译

作者: 小桥流水啦啦啦 | 来源:发表于2020-04-05 13:54 被阅读0次

    常见问题:

    1. 交叉编译Qt程序的原理没理清
    2. Qt的库和Qt的qmake、rcc、moc等工具没有设置好
    3. Qt的版本宿主机和目标机不一致

    针对以上问题1:
    Qt应用程序的交叉编译,其原理是通过宿主机上可执行的Qt相关工具程序(比如moc、rcc等),在编译时生成中间文件和资源文件,最终打包成Qt应用程序,但是该应用程序所依赖的Qt动态库又必须是目标机的(动态库必须是ARM aarch64架构的)。

    针对以上问题2:给环境变量PATH中必须设置本地Qt可执行文件的路径(也就是Qt的bin目录),这样才能找到moc、rcc等执行相关的操作,也就是说qmake、moc、rcc等在交叉编译是用的工具,必须是x86_64架构的。
    针对以上问题3:由于在交叉编译Qt应用程序是,用到了本地的Qt相关工具程序,所以在链接时,最好保持本地的Qt版本和目标机的Qt版本一直(也就是编译时的Qt版本和运行时的Qt版本保持一致)。

    总结以上问题:如果在cmake中设置了找库路径,则需要将目标机的Qt的lib库拷贝到设置的路径中,如果在cmake中没有设置找库路径,则有个粗暴的方法,就是将本地的Qt中lib目录换成目标机的lib,确保本地的Qt的bin目录中可执行文件都是x86_64架构,lib目录中的库文件都是ARM aarch64架构的。

    相关文章

      网友评论

        本文标题:qt5应用程序如何交叉编译

        本文链接:https://www.haomeiwen.com/subject/ufjuphtx.html