ARM/uClinux应用程序的开发
后面的头文件路径在搜索系统头文件路径前被搜索从而有可能替代系统的头文件,如果有多个这样的参数,则搜索的顺序是从左到右,然后是系统的头文件。
2)-m 是针对CPU的选项。
-mcpu=arm7tdmi 说明CPU类型
-msoft-float 产生包含浮点库的输出
-fsigned-char 让char类型有符号
-fomit-frame-pointer 对所有不需要帧指针的函数都不将其保存在寄存器中。
3) -Os –Wall
-Wall:所有警告都显示
Os:优化尺寸,该选项使能所有所有不增加尺寸的O2优化,并且进一步根据尺寸优化
4) = -DEMBED -D_uclinux_
-D: 将-Dmacro 后的macro定义为字符串1。
以下是链接:
arm-elf-ld -L/root/uClibc/lib -L/usr/local/gnu/arm-elf/lib -L/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1 -elf2flt –o hello /root/uClibc/lib/crt0.o /usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtbegin.o hello.o
/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtend.o -lc -lgcc –lc
其中
1) 链接工具: arm-elf-ld
2) -L指明需要链接的库的路径,用法和-I一样,自己的库的路径也可以在这里加入。 -L/root/uClibc/lib -L/usr/local/gnu/arm-elf/lib -L/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1
3) –o 后面紧跟生成的最终的文件名
4)/root/uClibc/lib/crt0.o /usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtbegin.o OBJECTS.o
/usr/local/gnu/lib/gcc-lib/arm-elf/3.0.1/crtend.o
这是需要链接在一起的.o文件
5) -lc -lgcc –lc -l 后面紧跟的是需要链接的库的名字,一般库的名字是libxxx.a,使用时为-lxxx即可,不加lib和.a。还要注意位置,自己的库文件应该加在他的库前面。
编译通过后,移植就算完成了,对于比较小的源代码都可以这样,即先分析他的编译选项(用到了那些头文件,库文件等),然后用自己的编译器对照相应参数重新编译一下就行了。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)