qt5应用程序如何交叉编译

常见问题:

  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架构的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在一日一控件的口号下,终于写好了五十几个自定义控件,包括各种仪表盘,各种温度计,各种进度条,各种按钮等,具体可参见...
    Zero_Memory阅读 3,392评论 0 1
  • Qt是属于一个跨平台的GUI开发软件,支持的平台有Unix、Linux、Windows/WinCE、IOS等。 Q...
    一叶之界阅读 12,567评论 0 17
  • 即将步入工作,正在实习中.......感觉还是把学生时代的良好习惯带入工作之中......博客仅在工作之外记录,不...
    影醉阏轩窗阅读 6,621评论 0 2
  • “中国丑陋建筑评选”引发了建筑界对丑陋建筑成因的反思与警醒,唤起了广大媒体及社会大众对弘扬优秀建筑文化的广泛关注和...
    杨小龙说阅读 5,834评论 0 1
  • 到底什么是初心?曾经对待所面对的事情最真诚纯碎的想法。 记得小时候经常会思考一个问题,我活着到底是为了什么?想了好...
    小溢_eea1阅读 1,594评论 0 0

友情链接更多精彩内容