首页 » 网站建设 » linuxarm搭建php技巧_嵌入式Linux开拓对象armlinuxgcc安装及运用

linuxarm搭建php技巧_嵌入式Linux开拓对象armlinuxgcc安装及运用

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

用于编译 ARM 架构的裸机系统

例:arm-none-linux-gnueabi-gcc

linuxarm搭建php技巧_嵌入式Linux开拓对象armlinuxgcc安装及运用

用于基于 ARM 架构的 Linux 系统,基于GCC,利用 Glibc 库

linuxarm搭建php技巧_嵌入式Linux开拓对象armlinuxgcc安装及运用
(图片来自网络侵删)

经由Codesourcery 公司优化过推出的编译器,用于编译 ARM 架构的 u-boot、Linux内核、linux运用等。

几个主要目录:编译器工具所在目录:FriendlyARM/toolchain/4.9.3/bin

编译器头文件所在目录:FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root/usr/include

库文件所在目录:FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root/usr/lib

编译器下载及安装

可以辞官网下载,http://www.linaro.org/downloads/

但是速率比较慢,可以直接用我下载好的。

链接: https://pan.baidu.com/s/1jL_G6kbTC9h_bF8HHXBWxw 提取码: 67u4

1.先把下载好的安装包移动到根目录下的tmp目录中(/tmp)

2.利用tar命令解压安装包,即在Terminal中输入以下命令:(前面的sudo表示利用root权限实行该命令)

sudo tar -xjvf /tmp/arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /

把稳是大写的字母C,此命令会把安装包解压到根目录下的opt的TuxamitoSoftToolchains里面(/opt/TuxamitoSoftToolchains)

3.解压完成后,再在(/usr/local)中创建一个新目录arm,即在Terminal中输入以下命令:

sudo mkdir /usr/local/arm

创建arm目录成功后,还须要给它解放全部权限,即在Terminal中输入以下命令:

sudo chmod 777 /usr/local/arm

4.在解压出来的目录中找到并把全体gcc-4.6.4目录复制到刚刚建好的arm目录中,命令如下:

先cd切换到gcc-4.6.4所在目录(切换后先ls看一下有没有gcc-4.6.4目录):

cd /opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/

在实行 cp 复制命令,-r 表示全体目录以及里面的任何东西

sudo cp -r gcc-4.6.4 /usr/local/arm

5.打开(/etc/profile)配置环境变量和库变量,目的是往后可以在任何位置利用该交叉编译器,命令如下:

sudo vi /etc/profile

用vi或者vim打开后,在文件末了添加两行,并输入以下代码:第一行是添加实行程序的环境变量,第二行是库文件的路径

export PATH=$PATH:/usr/local/arm/gcc-4.6.4/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib

然后保存退出即可。

6.利用source命令重新加载生效该配置文件

source /etc/profile1

7.考验是否安装成功,在 Terminal 输入以下命令输出版本信息:

arm-linux-gcc -v

arm-linux-gcc工具利用

arm-linux-gcc语法形式:arm-linux-gcc [ option | filename ]...

常日情形下,产生一个新的程序须要经由四个阶段:预处理、编译、汇编,链接

当然我们可以通过参数决定该编译操作实行到何步结束

参数繁多,在Linux环境下寻求帮助:man arm-linux -gcc

-E只对文件进行预处理,但不进行编译、汇编和链接。

例:arm-linux -gcc -E hello.c -o hello1.c

预处理后,hello1.c 中的内容:

-S只对文件进行编译(产生汇编文件.s),但是并不进行汇编和链接。

例: arm-linux -gcc -S hello.c上例中就会产生一个汇编文件 hello.s

-c

只对文件进行编译和汇编,但是并不进行链接,也便是说只把程序做成 obj 文件。

例: arm-linux -gcc -c hello.c –o hello.o

-o

指定目标名称,缺省的时候,gcc 编译出来的文件是 a.out

例:

arm-linux -gcc hello.c 默认编译出 hello.out

arm-linux -gcc -o hello.bin hello.c 指定目标名词是 hello.bin

arm-linux -gcc -o hello.s -S hello.c

-include file

包含某个代码,大略来说,便是编译某个文件时须要另一个文件的时候,就可以用它设定,功能就相称于在代码中利用#include。

例:arm-linux -gcc hello.c -include type.h

-I dir

如果利用#include"file"的时候,gcc/g++ 会先在当前目录查找你所指定的头文件,如果没有找到,编译器会到缺省的头文件目录找;

如果利用-I指定了目录, 编译器会先到你所指定的目录查找,然后再按常规的顺序去找。

例: arm-linux -gcc -o hello -I/xxx/include hello.c

-I

便是取消前一个参数的功能,以是一样平常在-I dir之后利用

-iprefix prefix 和 -iwithprefix dir

这两个参数一样平常一起利用,当-I的目录查找失落败,会到prefix+dir下查找

-l库名

指定编译的时候利用的库(静态库.a / 动态库.so)

例:arm-linux-gcc -lpthread hello.c

指定用到了 phtread.c 库

-L目录

指定编译的时候,搜索库的路径。
比如自己的库,就可以用-L指定到你的库所在的目录,不然编译器将只在标准库的目录找。
这个dir便是目录的名称。

例:arm-linux-gcc –L./ hello.c –o hello

gcc 优化

gcc 供应了为了知足用户不同程度的的优化须要,供应了近百种优化选项,用来对 {编译韶光,目标文件长度,实行效率} 这个三维模型进行不同的取舍和平衡。
优化的方法不一而足,总体年夜将有以下几类:

精简操作指令;

只管即便知足cpu的流水操作;

通过对程序行为的预测,重新调度代码的实行顺序;

充分利用寄存器;

对大略的调用进行展开等

-O0,-O1,-O2,-O3

O0:不做任何优化,这是默认的编译选项

O3:优化级别最高

-g

编译器在编译的时候产生调试信息。

例:arm-linux –gcc –o hello -g hello.c

课后作业

(1) 看门狗部件属于(硬件模块),其核心功能为(侦测软件代码跑飞)和(当系统“跑飞”而进入去世循环时,规复系统的运行)。

(2) 假设C程序代码 fun.c,将其编译成目标代码 fun.o,编译命令为arm-linux-gcc -c fun.c -o fun.o;如果 fun.c 利用了库函数 libcurses.a,将其和 main.c 一起编译成可实行文件 smartfun,则编译命令为arm-linux-gcc -c fun.c main.c -lcurses -o smartfun。

原文地址:https://kernel.0voice.com/forum.php?mod=viewthread&tid=1616

标签:

相关文章

大数据赋能双创,驱动创新发展的新引擎

随着信息技术的飞速发展,大数据已成为新时代创新发展的核心驱动力。近年来,我国政府高度重视大数据与创新创业(以下简称“双创”)的结合...

网站建设 2024-12-16 阅读0 评论0

libpaymentphp技巧_iOS制作银联支付SDK过程

银联支付SDK下载地址git下载地址选择手机控件下载即可,下载包中含有对应的开拓文档和demo本文记录紧张讲把银联支付做成coco...

网站建设 2024-12-16 阅读0 评论0