首页 > 其他分享 >Make编译之编译32bit Qt

Make编译之编译32bit Qt

时间:2024-04-04 14:55:41浏览次数:26  
标签:Qt 32bit Make qmake 编译 源码 工具

使用Make指定工具链编译Qt

简要叙述下过程,避免以后在遇到相似有大致思路

顺序总结:

  1. 获取工具链
  2. 下载Qt源码;
  3. 拷贝qtsrc/qtbase/mkspaces/一份文件夹;
  4. 用实际使用的工具链名称重新命名上一步拷贝的文件夹;
  5. 编辑重新命名后文件夹内的qmake.conf文件,使用指定的编译器绝对路径;
  6. 在qtsrc/下创建一个脚本,关键为脚本中使用-xplatform选项指定使用的特定编译工具。

编译过程碰到的问题

  1. 之前实在64bit的ubuntu20.04中编译的Qt5.15.2源码,但是一直有报错。解决多次后最后一个错误是一个32bit的库的问题,后来goole,发现确实有版本问题(但咱并不是说64bit不能编译32bit,网上有人成功案例是装32bit库解决,但此次无效),后来多方查询,最后32bit的ubuntu的一个官方正式版本是16.04。后来编译问题基本没有!

特别说明此次,工具链是32bit,系统也是ubuntu16.04 32bit。

1.工具链获取

本次工具链为供应商博研提供,对应板卡为Hi3798。获取工具链后需要在~/.bashrc中加入PATH与LD_LARBARY_PATH。使用source ~/.bashrc生效后,在cmd中使用: 工具链名字 -v 核对是否有效。

2.源码下载

源码有两种方式获取:一是安装QtCreator并选择源码一并安装https://download.qt.io/new_archive/qt/5.5/5.5.1/ ,二是从Qt官方获取:https://download.qt.io/new_archive/qt/ 。本次采取从QtCreator获取源码的方式。但下载Qt版本的时候需要注意,目前QtCreaotr从5.15开始官方不在提供32bit版本,本次下载的是5.5.1 32bit的run包。

3.配置

安装好Qt后,到Qt的安装目录中找到src,并拷贝一份src并进行重新命名,以避免污染源码。到qtsrc/qtbase/mkspaces/随便找一个文件夹进行复制,并且命名为工具链名称,更改复制的文件夹内的qmake.conf内容,如下:
原来内容:
image
改后内容:
image
记得保存哦!
再在qtsrc一级目录下建立一个脚本用于配置qtsrc/configure中给的配置项,本次建立了一个名为auto.sh的脚本,其内容如下:
image
其中的-xplatform:指定使用mkspaces中的那个文件夹,并使用后续文件夹里配置的编译器。建议与工具链名称相同即可。(没测试与工具链名称不同可不可以,猜测可以,但建议和工具链名称相同~);
其中的-prefix:指定make install 安装的路径(本次测试未生效,最后使用的命令是 make install -j 15 PREFIX=/home/mission/lvs/03_Qt/03_qt5.5.1/5.5.1_arm).

4.编译与安装

到此后就是配置configure文件和make的事儿了。
./auto.sh->./configure->make->make install PREFIX
若在第二步./configure时报错,解决错误后,先清除 rm -rf ./config.* 再执行./configure,无误后make加后续。

5.生成后别忘记生成的bin和lib加入环境变量中哦~

加入~/.bashrc

6.把生成的qmake配置到qtcreator中

怎么配置QtCreator网上有很多,这里就不再讲述。
细说下生成的qmake、qtcreator和工具链的关系:
qmake是用工具链生成的,而我们在QtCreator中写的代码也是需要工具链进行编译,原理是应该是qmake使用工具链编译咱们得源码。所以在QtCreaotr中配置是需要先配置编译器再配置Qt版本(即qmake),最后集成到kits中使用。


END

标签:Qt,32bit,Make,qmake,编译,源码,工具
From: https://www.cnblogs.com/lvshen/p/18114150

相关文章

  • postgresql make check报postgres.lto.o:(.note.stapsdt+0x4ac): undefined reference
    如下:/usr/bin/ld:postgres.lto.o:(.note.stapsdt+0x24):undefinedreferenceto`postgresql_statement__status_semaphore'/usr/bin/ld:postgres.lto.o:(.note.stapsdt+0x74):undefinedreferenceto`postgresql_deadlock__found_semaphore'/usr/bin/ld:p......
  • 使用fusesource的mqtt-client-1.7-uber.jar,mqtt发布消息出去,接收端看到的是中文乱码,如
    ......
  • 物联网实战--入门篇之(十一)安卓QT--前端开发
    目录一、设计思路二、QML文件结构三、顶部框四、中心圆圈五、泡泡六、开关栏七、调速栏八、安卓编译一、设计思路    还是再贴一下米家APP的截图,再根据我们之前第九篇的分析,大概可以得出设计思路了。首先一个根页面当底版,然后在跟页面上进行布局,布局内容分......
  • 【问题记录】CCES编译报错:“[Error li1030] Can not open input file ‘libadi_sigma
    一,问题现象编译工程时,报错提示:“[Errorli1030]Cannotopeninputfile‘libadi_sigma_sharc_awc.dlb’”,“[Errorli1030]Cannotopeninputfile‘libadi_sigma_sharc_nwc.dlb’”:二,问题原因&解决方法没有安装对应的插件,安装插件:SigmaStudioForSHARC-SH-Rel2.......
  • 电信aep—Ctwing平台使用笔记——mqttfx接入电信aep实现数据上传、命令下发。
    最近搞了电信平台,记录一下目录1.创建产品2.添加设备3.记录以下信息4.打开mqttfx​编辑5.试试​编辑6.建立属性7.建立服务8.打开mqttfx,输入主题与报文9.上传10指令下发1.创建产品2.添加设备3.记录以下信息4.打开mqttfx参数填写规则:1.BrokerAddress:从设......
  • centos7:从源代码编译安装 nfs-ganesha
    安装依赖,依照手册编译、打包、安装即可。  yumcleanallyuminstall-ycentos-release-ceph-nautilusepel-releaseredhat-lsb-coreyummakecacheyuminstall-ygccgcc-c++makecmakezipunzipyuminstall-ybisonflexdoxygenrpm-buildyuminstall-yuse......
  • 编译相关基础知识-探究helloWorld背后的原理
    1、filehello查看文件类型可以看到文件类型是x86_64,它是不能在ARM架构上运行的,因为它们的指令集不同。我们需要使用交叉编译工具比如arm-linux-gnueabihf-gcc来编译hello.c才能得到在ARM上运行的可执行文件可以看的此时是32bit,ARM架构上的可执行文件点击查看代码#includ......
  • Python框架下的qt设计之JSON格式化转换小程序
    JSON转换小程序代码展示:主程序代码:fromPyQt6.QtWidgetsimport(QApplication,QDialog,QMessageBox)importsysimportjsonclassMyJsonFormatter(jsonui.Ui_jsonFormatter,QDialog):#jsonui是我qt界面py文件名def__init__(self):supe......
  • 编译和链接
    一个软件的开发,一行代码的实现,实际上是由两个环节所构成的:翻译以及运行。而这两个环节是在两个环境下所进行的:翻译环境和运行环境。翻译环境负责将源代码转换为可执行的机器指令,也就是计算机能听懂的语言。运行环境负责实际执行代码的操作。翻译环境可以被分为两个部分:编译......
  • 北京天翼云代理商:分布式消息服务MQTT面向终端设备的轻量级消息产品
    北京天翼云代理商:分布式消息服务MQTT面向终端设备的轻量级消息产品简介:飞机@luotuoemo本文由(天翼云代理商:【金推云】www.jintui.cn)撰写北京天翼云代理商:分布式消息服务MQTT面向终端设备的轻量级消息产品一、天翼云的优势天翼云是中国电信旗下的云计算和大数据服务品牌,依......