使用时,按照主机平台,可以下载以下任一版本中的一个,结果是一样的: Linux解压版:在Linux主机(如Ubuntu、RedHat等)直接解压即可使用。推荐方式! Linux安装版:在Linux主机下执行后按照提示安装后使用。 Windows解压版:在Windows系统下解压后使用,但是需要MingW32。 Windows安装版:在Windows系统下安装后使用。 RPM安装版:RedHat系统安装包,新版本不提供该类安装包。 源码版:交叉编译器源代码,一般很少用到。 因为版本很多,可能难以选择,但是我们建议您使用最新版本,即有最新~标志的下载项。 —— 最新~ 下载 Mentor官方下载地址(需要注册,注册之后官方会发送一个下载地址到邮箱里面):http://www.mentor.com/embedded-software/sourcery-tools
程序最后运行的环境变了,比如你的开发板是基于 Arm 的——程序在 X86 上编辑,编译,最终运行在另一个和 X86 完全不同的架构的 Arm 芯片上。 ? 为了让这个流程变得简单,开发者们为不同的芯片开发了不同的编译器,比如针对 Arm 平台的 arm-linux-gcc,针对 mips 平台的 mips-linux-gnu-gcc,这些编译器都是基于 GCC 这篇文章主要讲 Arm 的交叉编译,所以这里后面都以 Linux 开发环境下的 Arm gcc 为例。 同时我发现 Linaro 申明称后续新版本的工具链会通过 Arm 官方发布。 在一次优化 u-boot 大小的时候我发现 6.3 版本的工具链生成的二进制文件要比 4.9 版本生成的小几百个字节,进一步对比分析后发现是因为 6.3 版本的工具链把代码中没用到的一些字符串全部过滤掉了
代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!
文章目录 一、前言 二、准备所用到的环境以及版本信息 1、Ubuntu和内核版本 2、gcc和g++版本 3、交叉编译gcc和g++版本 4、开发板信息 三、开发环境编译&安装qrencode 1、 二、准备所用到的环境以及版本信息 1、Ubuntu和内核版本 我也在ubuntu20的版本上做过实验,没问题 zh@zh:~$ uname -a Linux zh 4.18.0-15-generic zh@zh:~$ 3、交叉编译gcc和g++版本 怎么安装就不介绍了,看到本篇文章应该都是老手了吧。 因为我自己的开发板是arm架构的,所以我安装了arm架构的交叉编译工具。 开发板内核版本如下: [root@100ask:~]# uname -a Linux 100ask 4.9.88 #1 SMP PREEMPT Sat Jul 24 07:41:11 EDT 2021 /zh/libqrencode-arm-so/lib -lqrencode 交叉编译之后我们在Ubuntu开发环境上是无法正常执行的: zh@zh:~/qrcode$ ls main.cpp Qrcode
什么是交叉编译 我们在Linux中使用自带的gcc和g++编译器进行编译的程序是针对X86架构的。而我们开发板大多都是ARM或者其他架构的开发板,我们就需要编译出针对其他架构的程序。 zh@zh-lpc:~/soft/linux_tools$ 3、测试是否可以运行 进入到bin目录后,执行. /arm-linux-gnueabi-gcc -v 查看版本信息。如果成功了,说明可以了。 /_build/builds/destdir/x86_64-unknown-linux-gnu 线程模型:posix gcc 版本 4.9.4 (Linaro GCC 4.9-2017.01) zh@zh-lpc :~$ 那么配置其他版本的也是如此。
TSINGSEE青犀视频的Easy系列视频平台,对外提供Windows与Linux版本,如果用户有需求,我们也可以进行编译,提供ARM版。 今天我们来分享一下EasyNVR的ARM版移植安装的编译过程。 准备:Linux安装配置交叉编译器arm-linux-gnueabi-gcc。 一、下载 下载 gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux.tar.xz 版本(地址:https://releases.linaro.org/archive -2014.07_linux/bin 使变量生效:source /etc/profile 四、验证是否安装成功 执行:arm-linux-gnueabihf-gcc -v 如果能正确打印版本信息,表示安装成功 y libstdc++.i686 安装完成后执行编译命令: CC=arm-linux-gnueabihf-gcc GOOS=linux GOARCH=arm GO111MODULE=on go build
本编介绍如何在嵌入式Linux开发板上配置Qt运行环境,并进行Qt程序运行测试。 1 tslib编译 tslib之前在测试触摸屏的时候使用过,这里再来记录一下编译过程。 其它一些参数的含义: -opensource:构建Qt的开源版本 -release:使用release版本的Qt -xplatform linux-arm-gnueabi-g++:指定编译器 -skip 编译完成之后,再执行make install进行安装,安装之后就可以看到arm-qt文件中的内容了: 将qrm-qt文件夹先整个打包为arm-qt.tar.bz2文件,后面移植到开发板时用: tar ,具体操作过程见:VirtualBox虚拟机Ubuntu扩容记 情况2:编译最新版本的QT源码报错 使用Qt最新版本5.15.2编译报错,暂未找到解决方法,所以我先用5.12.9版本的Qt。 3 开发板上配置Qt环境 3.1 复制tslib和Qt的编译文件 将之前打包的arm-tslib.tar.bz2和arm-qt.tar.bz2压缩包复制到板子中,可以先复制到nfs网络位置,然后解压到
删除目录 4 1.2.6 生成Makefile 5 1.2.7 编译安装 5 1.2.8 编译成功 6 1.2.9 添加环境变量 6 1.2.10 查看qmake版本 7 1.2.11 编译ARM版的 9 1.3.6 开发板运行效果 10 1.3.7 鼠标设置方法 11 嵌入式linux之QT5.6移植 嵌入式linxu内核版本:3.5.0 交叉编译器:arm-linux-gcc 4.5.1 宿主机 可以直接拷贝到开发板运行。 示例: ./window_1 1.3 部署开发板运行环境 1.3.1 拷贝QT运行库 先创建一个文件夹qt5.6_lib,用来存放相关的代码! /configure --prefix=PWD/temp --host=arm-linux $make $make install 上述命令执行完成后会在libiconv目录下生成新的temp目录,该目录下存在 图1-8 Windows下的字体 1.3.6 开发板运行效果 图1-9 运行效果图 图1-10 运行效果图 图1-11 1.3.7 鼠标设置方法 如果输入源不想使用触摸屏,可以直接使用USB鼠标代替
本文说明在Linux主机上构建ARM开发用最新C++编译环境的方法。 安装Ubuntu主机 安装虚拟机软件 从VitualBox官网下载最新的VirtualBox。 Target: arm-linux-gnueabi ... gcc version 8.3.0 (Ubuntu/Linaro 8.3.0-23ubuntu2) 主要关注第二行的COLLECT_GCC信息和最后一行的版本信息 (版本可能略有不同)。 Target: arm-linux-gnueabi ... gcc version 8.3.0 (Ubuntu/Linaro 8.3.0-23ubuntu2) 主要关注第二行的COLLECT_GCC信息和最后一行的版本信息 由于要在Ubuntu上运行这个开发环境,因此选择[Linux 64-bit]进行下载。 安装EclipseCDT 在适当的位置使用以下命令解压缩安装包(表明可能略有不同)。
编译环境:ubuntu-12.0.4 编译器:gcc arm-arago-linux-gnueabi Python版本:3.6.2 Python安装包文件名:Python-3.6.2.tgz 整个过程分为三大步骤 进入Python-3.6.2文件夹,执行: . ++ AR=arm-arago-linux-gnueabi-arRANLIB=arm-arago-linux-gnueabi-ranlib . 文件 l HOSTPGEN指定我们之前编译的X86版本的pgen文件 编译命令: make HOSTPYTHON=. 最后在目标机上执行一下命令可以检查python环境是否完整。 9.重新编译arm文件系统,并烧录到开发板验证。
整个Linux操作系统家族基于 该内核部署在传统计算机平台(如个人计算机和服务器,以Linux发行版的形式)和各种嵌入式平台,如路由器、无线接入点、专用小交换机、机顶盒、FTA接收器、智能电视、数字视频录像机 实际Linux的发行版Ubuntu,其易用性也逐渐接近Windows。 编译Linuxkernel前必须先配置好工具链等开发环境,这里我们使用的交叉编译工具链为Buildroot GCC 8.4版本。 设置交叉编译,并执行编译命令。 编译内核模块 无论是哪个版本的STM32MP157开发板,编译内核模块的命令是一样的。 STM32MP157全功能版 执行以下命令: book@100ask:~/100ask_stm32mp157_pro-sdk/Linux-5.4$ make ARCH=arm INSTALL_MOD_PATH
引言 在工作中,遇到了需要将应用程序打包成 Docker 镜像并同时运行在不同的 CPU 架构(X86 和 ARM)的环境中。 经过研究,发现 docker buildx 支持构建多架构镜像,这使得构建多架构镜像变得简单。 这样就可以在 X86 架构下构建 ARM 架构的镜像。 接下来,开始实践之旅吧。 ? /amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6 我们当前使用的是默认的 builder 构建时要用到 docker buildx 命令,docker 版本需要 19.03+; 运行时 docker 版本不一定需要 19.03+,笔者使用 1.13.1 和 18.06.1 都可以 pull 如果要将多架构镜像推送到 Harbor,需要 Harbor 的版本为 v2.0.0。 Harbor v2.0.0 于 2020/05/13 发布,Harbor v2.0.0 完全支持多架构镜像。
录制视频时我会使用多种开发板,所以在视频里我总是使用“临时生效”的方法。 1.1 临时生效 也可以手工执行“export”命令设置环境变量,该设置只对当前终端有效(另开一个终端需要再次设置)。 -ostl-linux-gnueabi book@100ask:~$ make ARCH=arm CROSS_COMPILE=arm-ostl-linux-gnueabi- 2.测试交叉编译工具链 2.1 测试交叉编译器: 执行以下命令,结果见后图: book@100ask:~$ arm-ostl-linux-gnueabi-gcc –v 3.设置 buildroot 交叉编译工具链(默认使用) 交叉编译工具链用来在 100ASK_STM32MP157_PRO全功能版 执行以下3个命令,第3个命令很长,这里使用 \ 用来换行,复制的时候需要一并复制,注意 \ 前面没有空格: book@100ask:~$ export : 执行以下命令,结果见后图: book@100ask:~$ arm-buildroot-linux-gnueabihf-gcc –v
/configure --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --with-ssl --enable-shared 看了下自动生成的Makefile,没发现有什么问题, 最后打开libtool文件,发现链接查找的路径里没有这个/home/linux/arm/openssl/lib。 /configure --host=arm-linux CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ CPPFLAGS="-I/home/ linux/arm/openssl/ -I/home/linux/arm/openssl/include" LDFLAGS="-L/home/linux/arm/openssl/lib" LIBS="- 写了个demo,结果发现无论我怎么试,都没有崩。于是乎,,,问题可能出现应用上,但会是哪里呢? 我的测试验证方法如下,把 gcc编译参数 搞成一致,编译后运行看会不会崩。结果不会崩。
之前我们已经使用过gcc编译Linux本地主机的程序(Linux C语言编程(上篇) | gcc的使用),而我们现在需要的这个编译器的目标系统是ARM,不运行操作系统,仅运行裸机程序,需要在Linux主机上编译出可以运行在 然后输入arm-linux-,连按tab,检查是否可以自动补全,如果可以,则安装成功: ? 执行arm-linux-gcc,查看版本,主要是检查工具链是否可以正常运行: ? 安装完成后再次查看gcc版本,检测是否成功: 3.arm-linux-gcc的使用 arm-none-linux-gnueabi-gcc和之前的gcc使用无太大差异,示例如下。 5.嵌入式开发中常用的两个arm-linux-工具 5.1.格式转换工具arm-linux-objcopy 在Linux主机上编译生成的可执行程序通常为.out或者.elf格式,但是我们烧写到ARM芯片中运行的是 arm-linux-objdump 在嵌入式开发中大部分程序是使用C语言编写的,但是在遇到一些问题的时候,需要将由C语言编译生成的可执行程序反汇编,根据汇编程序排查错误,使用工具arm-linux-objdump
1.本文链接地址 http://blog.csdn.net/lz_obj/article/details/52620276 2.环境 linux系统版本:Ubuntu 10.04 交叉编译工具 :arm-linux-gcc4.5.2 嵌入式linux内核版本:Linux 2.6 3.操作步骤 (1)下载源码包Python-2.7.3.tgz和补丁Python-2.7.3-xcompile.patch CXX=arm-none-linux-gnueabi-g++ AR=arm-none-linux-gnueabi-ar RANLIB=arm-none-linux-gnueabi-ranlib /hostpython BLDSHARED="arm-none-linux-gnueabi-gcc-shared" CROSS_COMPILE=arm-none-linux-gnueabi- CROSS_COMPILE_TARGET =yesprefix=/home/Python-2.7.3/_install /* 10.11此处一些设置根据个人情况 */ (12)将_install文件夹移动到开发板中 4.运行截图 ?
② 编译驱动时用的内核、开发板上运行到内核,要一致: 开发板上运行到内核是出厂时烧录的,你编译驱动时用到内核是你自己编译的,这两个内核不一致时会导致一些问题。 9.2.3 其他开发板 使用 GTI 下载源码后,在以下目录有其他开发板的使用手册,请自行参考对应手册: ? 9.3.2 IMX6ULL 开发板 无论是哪个版本的IMX6ULL开发板,编译内核模块的命令是一样的。 1. 9.3.3 其他开发板 使用 GTI 下载源码后,在以下目录有其他开发板的使用手册,请自行参考对应手册: ? 9.5.3 在开发板上运行 开发板启动后通过 nfs 挂载 Ubuntu 目录的方式,将相应的文件拷贝到开发板上。
交叉编译器 1)将 toolchain\arm-himix200-linux.tgz 拷贝到 ubuntu16.0.4 系统中 2)解压 arm-himix200-linux.tgz 执行如下命令进行解压 : #tar –xzf arm-himix200-linux.tgz 3)安装 arm-himix200-linux 交叉编译器 运行 # chmod +x arm-himix200-linux.install 6)配置环境变量生效 # source ~/.bashrc 7)查看编译器版本 # arm-himix200-linux-gcc -v ? 显示编译器版本信息,则表示成功安装交叉编译器。 2)将内核的补丁 v4.9.37 打到 linux 的内核 kernel 上 从 linux 开源社区下载 v4.9.37 版本的内核: (1)进入网站:www.kernel.org (2)选择 HTTP : command not found 的解决办法: 这是因为 Linux 宿主机是 ubuntu 16.04 64 位,而交叉编译器是针对 32 位的开发板制作的。
CentOS系统是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。 无法在CentOS6.5上编译EasyNVR 我们在编译过程中,发现服务器命令报如下错误: [root@localhost arm-hisiv500-build]# arm-hisiv500-linux-gcc -v -bash:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-gcc: /lib/ld-linux.so 问题分析: 使用场景描述: 我们在虚拟机搭建了Centos6.5系统,进行交叉编译,编译ARM版本EasyNVR,无法进行编译。 工具链版本查询出现错误: ? 海思工具链是32位的。 执行arm-hisiv500-linux-gcc -v 问题解决: 安装glibc 32的环境 1.yum groupinstall “Development Tools” 2.yum install
这些书籍我按照 Arm Linux 系统所需要的知识结构,做了分类: Linux 系统环境 Git 版本管理 C 语言和汇编 Arm 体系结构 Linux 应用编程 Linux 内核基础原理 Linux 1、Linux 系统环境 熟悉 Linux 系统环境是一切的前提 —— Linux 系统环境中,最强大的开发武器是命令行和 Shell 脚本。 为什么? 《C 语言深度剖析》 这本书只有 130 多页,作者是中国人,是个牛人,而且已经出版发行到第二版,大家如果有机会可以考虑买正版支持一下,搞懂了这本书,面试啥的应该不成问题。 这部分我推荐了两本书,剩下的都是 Arm 官方发布的文档: 《ARM 嵌入式系统开发-软件设计与优化》 我印象中这本书的作者就是 Arm 公司的工程师,中文版是北航的一位老师翻译的,本书介绍了 Arm11 还是五本书: 《Linux 设备驱动开发详解》 业内大名鼎鼎的宋宝华老师写的,这本书我附了两个版本,第二版和第三版,第二版是基于 Linux 2.6,第三版是基于 Linux 4.x,两本书我都买了,第二版我看的比较多
腾讯 Kona(TK)是免费、可立即投入生产的 OpenJDK 发行版。腾讯 Kona 基于 TencentJDK 开发,针对云应用场景定制新的功能及优化, 具备更快的云应用启动速度,更好的性能以及更为便捷的分析、诊断工具……
扫码关注云+社区
领取腾讯云代金券