GNU编译工具
来源:互联网 发布:微信修复数据在哪里找 编辑:程序博客网 时间:2024/05/17 00:59
Development Studio 5 includes a distribution of the GNU Compiler Collection (GCC) and related GNU utilities. This distribution is referred to in this document as the 'GNU Compilation Tools'.
The GNU Compilation Tools can be used to build applications and libraries suitable for ARM Linux targets, including the example ARM Linux distribution which can be found in the DS-5 examples. They arenot suitable for building code for 'bare metal' ARM targets, for ARM targets running any other operating system, or for non-ARM targets.
The GNU Compilation Tools are a subset of the 2010.09-50 release of the CodeSourcery G++ Lite distribution for ARM GNU/Linux and are based on GCC version 4.5.1. Sources can be found in the 'sources' directory of your installation medium .
术语
This document makes use of the following terms.
Host Development Tools宿主机开发工具
All GNU Compilation Tools are in the bin
directory. They can be identified by the prefixarm-none-linux-gnueabi-
. The tools can be used from the command line, or in Makefile projects in the Eclipse IDE. For Windows users, the DS-5 Command Prompt has the tools in its path.
Some of the most important tools are:
注意
The GNU Compilation Tools are not 100% compatible with the ARM compilation tools. The GNU tools do not accept the default command-line options of the ARM tools, but the ARM tools can accept GNU command-line options. ARM therefore recommends that for building Linux applications, GCC command-line option are used. You should also be aware that the GNU and ARM assemblers consume different syntax. However, both toolchains are EABI-compliant, meaning that objects and libraries created with either toolchain can be used with the other toolchain.
Target Development Tools目标板开发工具
A gdbserver utility is included as part of the GNU Compilation Tools. Builds of this gdbserver utility can be found under thearm
directory of your Development Studio 5 installation. You should use the build most suitable for your target system but, if in doubt, the armv5t build is likely to work on the broadest range of target systems. Note that you must have compatible shared libraries installed to use the gdbserver utility on your target system. This gdbserver utility is taken from the 2010-q1-202 release of CodeSourcery G++ Lite and corresponds to GDB 7.0.50.
库和头文件
Sysroots系统目录
Applications and shared libraries for target distributions must be built with respect to resources available on the target distribution. In particular, libraries and corresponding headers from the target distribution must be available on the host. The necessary libraries and headers are here referred to as a sysroot. A sysroot may or may not also include binaries, configuration files, or any other part of the target distribution.
Sysroot Selection
You should build your code with respect to the headers and libraries for your target distribution. However, the GNU Compilation Tools contain three sysroots in the following directories:
sw/gcc/arm-none-linux-gnueabi/libc
Default armv5t sysroot.sw/gcc/arm-none-linux-gnueabi/libc/thumb2
thumb2 sysroot. Used if options -mthumb --march=armv7a
are given to the compiler.sw/gcc/arm-none-linux-gnueabi/libc/armv4t
armv4t sysroot. Used if option -march=armv4t
is given to the compiler.To use your own sysroot, specify its location on your host using --sysroot
. The default armv5t sysroot included with the GNU Compilation Tools is sufficient for building applications and libraries for the example Linux distribution included in the DS-5 examples, but its libraries are not guaranteed to be debug-compatible with the example distribution.
注意
Ordinarily, you are able to install sysroot filesystems onto real targets. However, if you are using a Windows host then the provided sysroots will not be suitable for use on a real target, due to differences between Windows and Linux filesystems.
注意
Locale data files have been removed from the provided sysroots, to save disk space. You may need to add locale files to be able to use the provided sysroots as a basis for a target filesystem. This should have no impact on using the sysroots for building applications.
Floating Point Support in the Provided Sysroots
The provided libraries all use software emulation to provide floating point support. This means that:
- All floating point operations performed by libraries will use software emulation, even when the target has hardware support for floating point
- Any code you build that uses these libraries must be built with
-mfloat-abi=softfp
in order to be interface-compatible with the libraries
If you are building with respect to a different set of libraries then you should set the-mfloat-abi
option to be compatible with your libraries.
Dynamic Linkage
The supplied compiler accesses thread-local storage using TLS descriptors. This requires support from the dynamic loader. If your target filesystem's dynamic loader does not support TLS descriptors then you must compile code with the option-mtls-dialect=arm
.
- GNU编译工具
- GNU gcc的编译工具用法(转)
- 建立GNU/Linux ARM交叉编译工具链
- windows 下编译 davinci的 gnu工具:flash_utils.tar.gz
- arm-vfp-linux-gnu交叉编译工具安装
- arm-vfp-linux-gnu交叉编译工具安…
- 使用GNU工具链
- GNU交叉工具链
- GNU binutils工具使用
- GNU Make 工具
- GNU 核心工具
- GNU交叉工具链
- GNU开发工具
- gnu coreutils内核工具
- GNU工具集
- GNU开发工具
- GNU binutils工具使用
- GNU Binutils工具介绍
- ajax jquery 实现搜索 回调数据 全选 加反选
- JDK目录结构与结构图
- MFC中的框架结构 开发经常用到的关系
- 依赖属性基本注册方法
- 功能强大的EXTJS的tree的节点操作
- GNU编译工具
- 天朝须知
- ListView
- 【iframe框,全局跳转】从iframe中跳转,覆盖整个页面
- 内存分配策略(静态,栈式,堆式的比较)
- android实现联网小例子,刚学习与大家分享
- PLSQL导入导出数据库
- code::blocks10.05调试多线程报错解决办法
- js返回历史上一页并刷新页面