arm编译链
‘壹’ 如何设置arm开发板交叉编译工具链
如何设置arm开发板交叉编译工具链
1.13.6 Compile菜单
按Alt+C可进入Compile菜单, 该菜单有以下几个内容,如图所示:
1. Compile to OBJ:将一个C源文件编译生成.OBJ目标文件, 同时显示生成的文件名。其热键为 Alt+F9。
2. Make EXE file:此命令生成一个.EXE的文件, 并显示生成的.EXE文件名。其中.EXE文件名是下面几项之一:
1) 由Project/Project name说明的项目文件名。
2) 若没有项目文件名, 则由Primary C file说明的源文件。
3) 若以上两项都没有文件名, 则为当前窗口的文件名。
3. Link EXE file:把当前.OBJ文件及库文件连接在一起生成.EXE文件。
4. Build all:重新编译项目里的所有文件, 并进行装配生成.EXE文件。该命令不作过时检查 (上面的几条命令要作过时检查, 即如果目前项目里源文件的日期和时间与目标文件相同或更早, 则拒绝对源文件进行编译)。
5. Primary C file:当在该项中指定了主文件后, 在以后的编译中, 如没有项目文件名则编译此项中规定的主C文件, 如果编译中有错误, 则将此文件调入编辑窗口, 不管目前窗口 中是不是主C文件。
6. Get info:获得有关当前路径、源文件名、源文件字节大小、编译中的错误数目、可用空间等信息,如图:
1.13.7 Project菜单
‘贰’ arm交叉编译工具链下载
arm交叉编译工具链下载方法
linux arm交叉编译环境,直接解压然后添加环境变量即可使用,
比如放在目录/usr/local/arm-linux,
最好是在/etc/profile中添加export PATH=$PATH:/usr/local/arm-linux/bin
然后执行source /etc/profile
就可以在任何地方执行arm-linux-gcc等一系列相关指令了
相关下载链接://download.csdn.net/download/girlkoo/3689485?utm_source=bbsseo。
‘叁’ 交叉编译工具链 arm-arago-linux-gnueabi-gcc 中的arago和gnueabi代表什么意思
arm-arago-linux-gnueabi-gcc
arm :CPU Architecture
arago: Hardware Platform or Vendor
linux:Operating System
gnueabi: C Library
arago 那个段落,表示的是供应商,对于 arm 这里也可以是 hardfloat 或者 softfloat ,也就是使用的是硬浮点还是软浮点。当然其实这个东西是在编译 gcc 时,通过 --with-float= 指定而不是通过这里进行识别芦州。但有的时候,一些编译脚本会识别这里来确定浮点运算器是软是硬。
gnueabi 是 C 函数库的使用,比如 gnu 是 GNU C Library ,也就是 glibc 。对应的还有 uclibc 。附加的 eabi 其实是说,使用的是新的 EABI 二进制接口 Embedded application binary interface 。这个嵌入式专用接口比老的更好用,效率更高而且支持新的一些硬件功能。码伍老的教 OABI 。当然,同 float 一样可以通过参数直接定义。
这一大堆联合起来,只是为了直观的表现并且区别使用用途和功能定义。没有必陪模蔽要太过于关注。
‘肆’ arm-eabi编译链和arm-none-linux-gnueabi编译链有什么区别及使用对用
链接工具命名:
arch-vendor-(os-)abi
1、arm-none-linux-gnueabi (ARM architecture, no vendor, linux OS, and the gnueabi ABI)
用于编译ARM架构的u-boot、linux内核、linux应用等
2、arm-none-eabi
用于编译ARM架构的裸机系统(包括linux的 boot、kernel)
3、arm-eabi
Android ARM 编译器
‘伍’ ARM交叉编译时链接错误,提示collect2: ld returned 1 exit status,求解答
libVimbaC.so编译的不对, 使用arm gcc链接so命令:
arm-none-linux-gnueabi-gcc -o libVimbaC.so -shared ..... VimbaC.cpp
就可以编译出arm下用的动态库了.
‘陆’ arm-linux-gnueabihf交叉编译工具链使用问题
与使用gcc或g++方法一样,只是把命令替换成arm-linux-gnueabihf-gcc或arm-linux-gnueabihf-g++
例如
arm-linux-gnueabihf-gcc -g -o helloworld main.c
写Makefile文件时也要注意命令的替换,举例
CC=arm-linux-gnueabihf-gcc
helloworld : main.c
$(CC) -g -o helloworld main.c