What is arm linux gcc toolchain

what is arm-linux-gcc and how to install this in ubuntu

In compiling qt I found that there is a qws target called arm-linux-gcc. I looked around a bit but unable to figure out how and where to find this. I tried installing and apt-cache gave me following output.

apt-cache search armel asterisk-prompt-fr-armelle - French voice prompts for Asterisk by Armelle Desjardins rootstock - shellscript to create armel rootfs tarballs using a VM rootstock-gtk - graphical frontend to the rootstock rootfs builder tool icedtea-6-jre-cacao - Alternative JVM for OpenJDK, using Cacao installation-guide-armel - Ubuntu installation guide for armel jasper - Configure a preinstalled ext2/3 system image cpp-4.3-arm-linux-gnueabi - The GNU C preprocessor cpp-4.4-arm-linux-gnueabi - The GNU C preprocessor g++-4.3-arm-linux-gnueabi - The GNU C++ compiler g++-4.4-arm-linux-gnueabi - The GNU C++ compiler gcc-4.3-arm-linux-gnueabi - The GNU C compiler gcc-4.4-arm-linux-gnueabi - The GNU C compiler gcc-4.4-base-armel-cross - The GNU Compiler Collection (base package) (for cross- compiling) libc-bin-armel-cross - Embedded GNU C Library: Binaries (for cross-compiling) libc-dev-bin-armel-cross - Embedded GNU C Library: Development binaries (for cross- compiling) libc6-armel-cross - Embedded GNU C Library: Shared libraries (for cross-compiling) libc6-dev-armel-cross - Embedded GNU C Library: Development Libraries and Header Files (for cross-compiling) libgcc1-armel-cross - GCC support library (for cross-compiling) libgcc1-dbg-armel-cross - GCC support library (debug symbols) libgfortran3-armel-cross - Runtime library for GNU Fortran applications libgfortran3-dbg-armel-cross - Runtime library for GNU Fortran applications (debug symbols) libgmp3-dev-armel-cross - Multiprecision arithmetic library developers tools (for cross-compiling) libgmp3c2-armel-cross - Multiprecision arithmetic library (for cross-compiling) libgmpxx4ldbl-armel-cross - Multiprecision arithmetic library (C++ bindings) (for cross-compiling) libgomp1-armel-cross - GCC OpenMP (GOMP) support library libgomp1-dbg-armel-cross - GCC OpenMP (GOMP) support library (debug symbols) libmpfr-dev-armel-cross - multiple precision floating-point computation developers tools (for cross-compiling) libmpfr4-armel-cross - multiple precision floating-point computation (for cross-compiling) libmudflap0-4.4-dev-armel-cross - GCC mudflap support libraries (development files) libmudflap0-armel-cross - GCC mudflap shared support libraries libmudflap0-dbg-armel-cross - GCC mudflap shared support libraries (debug symbols) libobjc2-dbg-armel-cross - Runtime library for GNU Objective-C applications (debug symbols) libstdc++6-4.3-dbg-armel-cross - The GNU Standard C++ Library v3 (debugging files) libstdc++6-4.3-dev-armel-cross - The GNU Standard C++ Library v3 (development files) libstdc++6-4.3-pic-armel-cross - The GNU Standard C++ Library v3 (shared library subset kit) libstdc++6-4.4-dbg-armel-cross - The GNU Standard C++ Library v3 (debugging files) libstdc++6-4.4-dev-armel-cross - The GNU Standard C++ Library v3 (development files) libstdc++6-4.4-pic-armel-cross - The GNU Standard C++ Library v3 (shared library subset kit) libstdc++6-armel-cross - The GNU Standard C++ Library v3 (for cross-compiling) linux-libc-dev-armel-cross - Linux support headers for userspace development (for cross-compiling) tzdata-armel-cross - time zone and daylight-saving time data (for cross-compiling) zlib1g-armel-cross - compression library - runtime (for cross-compiling) zlib1g-dev-armel-cross - compression library - development (for cross-compiling) cpp-4.1-arm-linux-gnueabi - The GNU C preprocessor cpp-4.2-arm-linux-gnueabi - The GNU C preprocessor g++-4.1-arm-linux-gnueabi - The GNU C++ compiler g++-4.2-arm-linux-gnueabi - The GNU C++ compiler gcc-4.1-arm-linux-gnueabi - The GNU C compiler gcc-4.2-arm-linux-gnueabi - The GNU C compiler libmpfr1ldbl-armel-cross - multiple precision floating-point computation (for cross- compiling) libobjc2-armel-cross - Runtime library for GNU Objective-C applications libstdc++6-4.1-dbg-armel-cross - The GNU Standard C++ Library v3 (debugging files) libstdc++6-4.1-dev-armel-cross - The GNU Standard C++ Library v3 (development files) libstdc++6-4.1-pic-armel-cross - The GNU Standard C++ Library v3 (shared library subset kit) libstdc++6-4.2-dbg-armel-cross - The GNU Standard C++ Library v3 (debugging files) libstdc++6-4.2-dev-armel-cross - The GNU Standard C++ Library v3 (development files) libstdc++6-4.2-pic-armel-cross - The GNU Standard C++ Library v3 (shared library subset kit) 

I think this has my system’s arm compilers. Could some one assists to figure out to install «arm-linux-gcc»

Читайте также:  Драйвера на видеокарту linux asus

Источник

Install Arm GNU Toolchain on Ubuntu 22.04

Install Arm GNU Toolchain on Ubuntu 22.04

The Arm GNU toolchain (previously known as GNU Arm Embedded toolchain) is a collection of packages such as GCC (GNU Compiler Collection), Binutils, GDB, and other. It is used for embedded systems software development. This toolchain targets the 32-bit ARM Cortex-A, ARM Cortex-M, and ARN Cortex-R processor families.

This tutorial shows how to install Arm GNU toolchain on Ubuntu 20.04.

Install toolchain

There is no straightforward way to determine the latest version of toolchain via command line. So download web page and extract the latest version of toolchain as follows:

ARM_TOOLCHAIN_VERSION=$(curl -s https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads | grep -Po '

Version \K.+(?=

)')

Next, download archive file from official website:

curl -Lo gcc-arm-none-eabi.tar.xz "https://developer.arm.com/-/media/Files/downloads/gnu/$/binrel/arm-gnu-toolchain-$-x86_64-arm-none-eabi.tar.xz"

Create a new directory to store toolchain files:

sudo mkdir /opt/gcc-arm-none-eabi

Extract toolchain files to specified directory:

sudo tar xf gcc-arm-none-eabi.tar.xz --strip-components=1 -C /opt/gcc-arm-none-eabi

Add /opt/gcc-arm-none-eabi/bin directory to the PATH environment variable.

echo 'export PATH=$PATH:/opt/gcc-arm-none-eabi/bin' | sudo tee -a /etc/profile.d/gcc-arm-none-eabi.sh

To make changes to take effect, logout and login to your system or run the following command to apply the changes immediately:

We can check version of compilers:

Remove unnecessary archive file:

rm -rf gcc-arm-none-eabi.tar.xz

Testing toolchain

arm-none-eabi-gcc --specs=rdimon.specs main.c -o test

The file command can be used to verify that executable file is for ARM architecture.

test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, with debug_info, not stripped

Uninstall toolchain

If you want to completely remove GNU Arm Embedded toolchain, delete the installation directory:

sudo rm -rf /opt/gcc-arm-none-eabi

Remove gcc-arm-none-eabi.sh file that is used to set environment variable:

sudo rm -rf /etc/profile.d/gcc-arm-none-eabi.sh

GNU Debugger (GDB) dependencies

Read this section if you want to use GNU Debugger (GDB). It requires installing additional dependencies.

arm-none-eabi-gdb: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory

Then install libncursesw5 package:

sudo apt install -y libncursesw5
  • On Linux, Arm GNU toolchain provides GDB with Python support. It requires installation of Python 3.8. If you are receiving an error regarding Python, such as:
Could not find platform independent libraries Could not find platform dependent libraries Consider setting $PYTHONHOME to [:] Python path configuration: PYTHONHOME = (not set) PYTHONPATH = (not set) . Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding Python runtime state: core initialized ModuleNotFoundError: No module named 'encodings'

Then install Python 3.8 using the separate post. See section «Install older versions».

Читайте также:  What is pax linux

When installation finished, check GDB version:

If everything installed successfully, you will get output similar to the following:

GNU gdb (Arm GNU Toolchain 12.2.MPACBTI-Bet1 (Build arm-12-mpacbti.16)) 13.0.50.20220406-git Copyright (C) 2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Install Docker CE on Ubuntu 22.04

Docker is an open-source platform for developing, testing, and running applications. Docker provides a way.

Get Package Dependencies on Ubuntu

Most of the time, packages requires additional dependencies to work as intended. This tutorial demonstrates.

Install ripgrep on Ubuntu 20.04

The 11 Comments Found

sudo mkdir /opt/gcc-arm-none-eabi
Can I change directory this extract file to the Home folder and PATH environment variable in this folder without any error??
Thank you so much for your help

There are no requirements for installation directory. So, you can extract archive file to home directory and set corresponding PATH environment variable.

You are doing a bit more than only extend the PATH variable.
You are echoing the command to extend the PATH variable onto stdin then capture it via tee and put it (append it) into a file called gcc-arm-none-eabi.sh which resides in the path /etc/profile.d/. This enables you to have the PATH variable dynamically set on each system boot up by the system’s profile mechanism.

Thanks for this tutorial. It helped me install one of ARM’s toolchains on GitHub Actions. Wanted to show my appreciation. Will be checking out more of your content. Cheers.

It seems that you need additional step: to «export ARM_TOOLCHAIN_VERSION=12.2.Rel1» or whatever version.
Thanks for the very detailed steps.

Читайте также:  Linux сменить владельца всех файлов

Hi,
The tutorial provides a command which downloads the web page, extracts the latest version of toolchain and assigns version to the ARM_TOOLCHAIN_VERSION variable. Of course, version can be specified manually like you did.

Hi, can I ask a question?
This toolchain is used to developing apps on arm, right? I will not build again?
Thanks!

Hi,
Arm GNU Toolchain is a collection of tools that are used to create applications for ARM-based devices such as Raspberry Pi. Once you have built your application using the toolchain, you can run it on your ARM-based device.

Hi! This article really helped me today. thanks for sharing! any tips on how to configure vscode to do gdb debugging on ARM embedded code?

Hi,
I’m glad to hear that the article assisted you in setting up the Arm GNU Toolchain on your system. Visual Studio Code offers a range of extensions designed to enhance the debugging capabilities for embedded systems based on ARM Cortex-M. To access these extensions, you can explore the official Visual Studio marketplace, where you’ll find a selection of options. Take the time to review the descriptions of each extension to understand how to configure and utilize the debugging features effectively.

Источник

Оцените статью
Adblock
detector