QT源码交叉编译

交叉编译QT 源码

板子:全志 V3S , arm32位cpu

  1. ubuntu 虚拟机搭建好交叉编译链环境,添加环境变量
ok3399@ubuntu:~$ echo $PATH
/opt/OK3399-linux-release/host/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/
  1. 使用arm-linux-gcc -v 确认编译工具安装OK
    在这里插入图片描述

  2. 解压QT源码

ok3399@ubuntu:/opt/qt/qt-5.13.1S-src$ ls
build.sh         LICENSE.FDL                       qtdatavis3d         qtquickcontrols    qtwayland
_clang-format   LICENSE.GPLv2                     qtdeclarative       qtquickcontrols2   qtwebchannel
coin            LICENSE.GPLv3                     qtdoc               qtremoteobjects    qtwebengine
config.cache    LICENSE.LGPLv21                   qtgamepad           qtscript           qtwebglplugin
config.log      LICENSE.LGPLv3                    qtgraphicaleffects  qtscxml            qtwebsockets
config.opt      LICENSE.QT-LICENSE-AGREEMENT-4.0  qtimageformats      qtsensors          qtwebview
config.status   Makefile                          qtlocation          qtserialbus        qtwinextras
config.summary  qt3d                              qtlottie            qtserialport       qtx11extras
config.tests    qtactiveqt                        qtmacextras         qtspeech           qtxmlpatterns
configure       qtandroidextras                   qtmultimedia        qtsvg              README
configure.bat   qtbase                            qtnetworkauth       qttools
configure.json  qtcharts                          qt.pro              qttranslations
gnuwin32        qtconnectivity                    qtpurchasing        qtvirtualkeyboard
  1. 复制 make spec 文件
    将 linux-arm-gnueabi-g++ 文件夹 复制为新的 arm-linux-g++(和编译器同名)文件夹,不要修改qt源码自带的。
ok3399@ubuntu:/opt/qt/qt-5.13.1S-src/qtbase/mkspecs$ ls
aix-g++        integrity-armv7        linux-icc-k1om      qdevice.pri            win32-clang-msvc
aix-g++-64     integrity-armv7-imx6   linux-llvm          qmodule.pri            win32-g++
android-clang  integrity-armv8-rcar   linux-lsb-g++       qnx-aarch64le-qcc      win32-icc
android-g++    integrity-x86          lynxos-g++          qnx-armle-v7-qcc       win32-icc-k1om
arm-linux-g++  linux-aarch64-gnu-g++  macx-clang          qnx-x86-64-qcc         win32-msvc
common         linux-arm-gnueabi-g++  macx-g++            qnx-x86-qcc            winrt-arm64-msvc2017
cygwin-g++     linux-clang            macx-icc            solaris-cc             winrt-arm64-msvc2019
darwin-g++     linux-clang-32         macx-ios-clang      solaris-cc-64          winrt-arm-msvc2015
devices        linux-clang-libc++     macx-tvos-clang     solaris-cc-64-stlport  winrt-arm-msvc2017
dummy          linux-clang-libc++-32  macx-watchos-clang  solaris-cc-stlport     winrt-arm-msvc2019
features       linux-g++              macx-xcode          solaris-g++            winrt-x64-msvc2015
freebsd-clang  linux-g++-32           modules             solaris-g++-64         winrt-x64-msvc2017
freebsd-g++    linux-g++-64           modules-inst        unsupported            winrt-x64-msvc2019
haiku-g++      linux-icc              netbsd-g++          wasm-emscripten        winrt-x86-msvc2015
hpuxi-g++-64   linux-icc-32           openbsd-g++         win32-arm64-msvc2017   winrt-x86-msvc2017
hurd-g++       linux-icc-64           qconfig.pri         win32-clang-g++        winrt-x86-msvc2019
  1. 在copy的make spec 修改 即arm-linux-g++ 下的qmake.conf
ok3399@ubuntu:/opt/qt/qt-5.13.1S-src/qtbase/mkspecs/arm-linux-g++$ ls
qmake.conf  qplatformdefs.h

修改后如下,使用交叉编译器的绝对路径设置 QMAKE_CC。。。,否则可能会找不到编译器

#
# qmake configuration for building with arm-linux-gnueabi-g++
#MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC                = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-gcc
QMAKE_CXX               = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-g++
QMAKE_LINK              = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-g++
QMAKE_LINK_SHLIB        = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-g++# modifications to linux.conf
QMAKE_AR                = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-ar cqs
QMAKE_OBJCOPY           = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-objcopy
QMAKE_NM                = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux-nm -P
QMAKE_STRIP             = /media/user1/V3SSDK_BUILDROOT/v3ssdk/buildroot/out/host/bin/arm-linux--strip
load(qt_config)
  1. 编写构建脚本, 在 src 目录下,地步可以看到 我的 build.sh
#!/bin/sh
./configure -confirm-license \-xplatform arm-linux-g++\-opensource \-verbose \-skip qt3d \-skip qtquickcontrols \-skip qtwebchannel \-skip qtactiveqt \-skip qtandroidextras \-skip qtdeclarative \-skip qtimageformats \-skip qtmacextras \-skip qtx11extras \-skip qtxmlpatterns \-skip qtconnectivity \-skip qtdoc \-skip qtgraphicaleffects \-skip qtlocation \-skip qtmultimedia \-skip qtsensors \-skip qttools \-skip qttranslations \-skip qtwayland \-skip qtwebchannel \-skip qtwebengine \-skip qtwinextras \-no-opengl \-widgets \-prefix /opt/qt/qt_v3s

-xplatform 是目标平台,使用交叉编译器的名字即可(第六步 mkspc 文件夹名字)。
-prefix /opt/qt/qt_v3s 编译后qt存放位置

  1. 执行build脚本后,根据提示进行 make , make install 生成文件确认
ok3399@ubuntu:/opt/qt/qt_v3s$ ls
bin  doc  examples  include  lib  mkspecs  plugins

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JQ表单序列化变成 对象

JQ表单序列化变成 对象 function serializeObject(form) { var o {}; $.each(form.serializeArray(), function(index) { if (o[this[name]]) { o[this[name]] o[this[name]] ";" this[value]; } else { o[this[name]] this[value]; } }); return o;} 、、、、、…

即将从TechReady5归来

TechReady是微软内部面向Services、DPE、TS等部门的技术会议,每年两次,这次是第5次。听了几天课,虽说很多内容有点旧,但其中还是有不少好的东东,呵呵。 TechReady5的第2天,Bill Gates给了一节General Sessi…

linux交叉编译无法识别gcc编译器

使用 arm gcc 编译时候 32位编译器无法识别 原因没有安装下面两个库导致我当时编译 qt 源码时报没有 compiler 在 编译工具存放文件夹下 查看编译器版本也无法识别编译器 64位ubunutu安装 32 位依赖库后即可 sudo apt-get install lib32ncurses5 lib32z1sudo apt-getinstall …

安装redis出现cc adlist.o /bin/sh:1:cc:not found

安装redis时 提示执行make命令时, 提示 CC adlist.o /bin/sh: cc: 未找到命令 问题原因:这是由于系统没有安装gcc环境,因此在进行编译时才会出现上面提示,当安装好gcc后再进行编译时,上面错误提示将消失。 解决方法&am…

理想的 ASP.NET AJAX (Part 1 - Client Centric)

怎样的AJAX才算是理想? 要说什么是理想的ASP.NET AJAX,就要先说说什么是理想的AJAX。事实上AJAX最不理想的地方在于search engine friendly以及bookmarkable,这两个问题有一定的相似性,要解决并不难,只是每一个系统中实…

QT 发布程序到开发板

设置 IP 与开发板同一网段 设置一个device 设置开发板平台的 kit , 选择 device 设备为刚刚设置好的 pro 文件加入代码设置远程发布安装路径 INSTALLS target target.path /root/home/ftp5. 重新qmake工程完成设置 6. 是程序可以在板上运行, 之前这里一直…

Hibernate(十):n-n关联关系

背景:在实际开发中我们会遇到表的多对多关联,比如:一篇博客文章,它可以同时属于JAVA分类、Hibernate分类。 因此,我们在hibernate的学习文章系列中,需要学会如何使用hibernate来实现多对多的关联关系。 在h…

扫描器scanner的源代码

扫描器scanner的源代码&#xff0c;应该说是比较粗糙的 .#define szSign "500 13\r\nServer: Microsoft-IIS/5.0"//根据此标志来检查目标是否有漏洞 其实就是个取Banner。我那他改造了一下。有空检查一下效果如何&#xff1a;&#xff09; #include <stdio.h>…

QT 开发基于高德智感 ITA SDK 的红外模组应用

QT 开发基于高德智感 ITA SDK 的红外模组应用 1.把创建的工程 .pro 文件打开&#xff0c;在文本编辑区域点击鼠标右键弹出操作选项框&#xff0c; 点击 “Add Libraray…” 2.选择“External Libraray ”, 点击 “Next” 3.在弹出框点击选择Linux Platform, Library Type 选…

webpack第一节(4)

每次修改了代码都需要重新手动打包&#xff0c;这样很麻烦&#xff0c;不符合webpack的初衷&#xff0c;我们查看webpack帮助看看有没有可以自动运行的方法 输入 webpack -help 可以发现有个 --watch方法 它的解释是监听系统文件改变 我们试一试 现在监听进程一直在运行 我们改…

T.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflectio

There is no getter for property named * in class java.lang.String&#xff0c;此错误之所以出现&#xff0c;是因为mybatis在对parameterType"String"的sql语句做了限制&#xff0c;假如你使用<when test"username ! null">这样的条件判断时&…

【新媒体】现阶段新闻聚合的玩法

郑昀 20070824<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />新浪科技主编曹增辉的《新闻聚合的门槛》论及了玩聚所处的一些大环境之先天不足&#xff0c;主要是环境门槛、细分市场的门槛&#xff0c;以及入口问题。我的理解呢…

VS2015 + Qt +Ubuntu 交叉编译环境搭建教程

VS2015 Qt Ubuntu 交叉编译环境搭建教程 准备材料&#xff1a; VS2015 专业版 Qt5.7.1 VC Linux 插件工具 Vmware Ubnutu虚拟机 第1步&#xff1a;先安装 VS2015 选择 VC 开发&#xff0c; 选择安装 windows SDK kit 最新版本 第2步&#xff1a;安装 VC_Linux 插件 第3步…

1 java开发工具IDEA的使用

IntelliJ IDEA 2017.1汉化破解版安装图文教程(附汉化补丁) 注册码:http://idea.lanyus.com/ 点击在线生成 IntelliJ IDEA 2017.1正式版发布了&#xff0c;在新增功能方面值得关注的亮点有对Java 9的支持&#xff0c;以及对 Spring Data 支持的改进。在增强功能上&#xff0c;除…

[转]权限树中Checkbox的操作[Asp.Net2.0]

转自:http://jeffamy.cnblogs.com/archive/2006/06/17/428387.html原文如下:这里使用asp.net2.0的TreeView控件结合JavaScript实现权限树的部分功能。假设权限树中有如下三条规则&#xff1a;1、该节点可以访问&#xff0c;则他的父节点也必能访问&#xff1b;2、该节点可以访问…

java -XX:+PrintFlagsInitial该命令可以查看所有JVM参数启动的初始值

java -XX:PrintFlagsInitial 该命令可以查看所有JVM参数启动的初始值 [Global flags]intx ActiveProcessorCount -1 {product}uintx AdaptiveSizeDecrementScaleFactor 4 …

DVP 接口时钟配置错误导致的高温出图异常

我们sensor 在常温下出图正常&#xff1b; 但是在高温测试的时候&#xff0c;会出现花屏 继续升温画面就变为一个色&#xff0c;其实这个时候 sensor 计算的电压幅值已经饱和 将DVP 时钟改为 12MHZ 后OK&#xff0c; 软件处理是按照12MHZ 没有一点问题&#xff0c; 与客户确认也…

6.8

1、数组和函数concat将参数列表连接到原数组后面形成一个新的数组并返回&#xff0c;原有数组不受影响。 var arr ["a","b","c"];var arr1 arr.concat("d","e");//arr1 ["a","b","c",&quo…