编译命令(amlogic open linux)----学习笔记 - huyan1983的...

来源:百度文库 编辑:神马文学网 时间:2024/04/27 20:59:54
•所有编译调试命令都在ui_ref/trunk/bld_xxx下面执行,具体哪个bld要根据您使用的板子决定;
•Make #编译全部,包括kernel, busybox, packages等;
•Make root #编译文件系统;
•Make yaffs#把文件系统打包生成yaffs文件系统的映像rootfs.yaffsimage,并保存在build目录;
•编译内核
Make k.menuconfig#配置内核,具体配置方法和直接配置内核一致,同时也可以使用make k.config, make k.xconfig等;
Make k#编译内核;
Make k.modules#编译内核模块,并自动安装到指定的ROOTFS/lib/modules目录;
Make k.clean#删除内核编译的临时文件,如果内核做了大的改动或更新,需要这么做,以防止播放部分没有重新编译导致问题;
•编译busybox
Make b.menuconfig#配置busybox
Make b#编译busybox
Make b.xxx#调用busybox内部的命令,包括clean,install;等
•编译packages(软件包)
Make p.menuconfig#配置软件包
Make p#编译软件包;
Make p.clean#删除编译生成的文件.
Make p.distclean#删除整个编译生成的packages目录;
Make p.${PACKAGES_NAME}.all#编译具体的软件包,这个PACKAGES_NAME和软件包的目录名一致;
工具链
•Arclinux使用了两套工具链,分别用来编译内核和应用程序;
Arc-elf32-:基于new-lib的工具链,这个库不是基于linux系统调用开发的,主要用来编译非linux标准的应用程序;由于系统调用不一致,也不能用来编译应用程序;我们一般用来编译linux内核;
Arc-linux-uclibc-:基于uclibc和linux的编译工具链,可以用来编译linux下的应用程序;
•Arc-elf32-gcc
•Arc-elf32-g++;
•Arc-linux-uclibc-gcc
•Arc-linux-uclibc-g++
三个编译器都可以用来编译C和C++代码;
GCC一般用来编译c代码,同时也可以用来编译C++代码;
G++一般用来编译C++代码,编译C代码的使用会自动调用GCC;
•其他主要工具,都省略了前缀,arc-elf32-和arc-linux-uclib-,如果不使用前缀,就是执行系统本身的工具链,工具的功能一样:
readelf#elf格式分析工具,可以查看section,符号表等;
Objdump#反编译工具,可以用来反编译elf格式文件,分析编译结果代码;
Objcopy#elf文件转换工具,可以用来生成bin文件,添加,删除symble,section等;
As#汇编代码编译工具
Ld#链接器,链接.o文件
Ar#库制作工具,可以把多个.o文件制作为静态库,也可以把静态库分解为多个.o文件;
Ranlib#跟新静态库的索引和符号表,加快静态库的访问速度,一般在ar后使用;
Nm#elf文件符号表分析工具,linux下面的System.map就是使用nm来生成的;
Strip#删除elf文件里面的symbols和sections;
Size#显示elf程序中各段数据大小
Run#简单的虚拟机,可以执行elf-gcc编译出来的简单文件;
工具链
Gdb#gnu调试工具,能够单步,断点执行,可以分析堆栈,局部全局变量等;
Insight#gdb的图形版本,实际上是insight界面调用gdb来完成调试工作;
Gcov#代码覆盖率分析;
Gprof#代码执行次数统计工具,可以用来优化代码; 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huyan1983/archive/2010/04/20/5506259.aspx