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

•所有编译调试命令都在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#代码执行次数统计工具,可以用来优化代码;

你可能感兴趣的:(编译命令(amlogic open linux)----学习笔记)