u-boot.2012.10makefile分析,良心博友汇总

声明:以下内容大部分来自网站博客文章,仅作学习之用
1、uboot系列之-----顶层Makefile分析(一)
1、u-boot.bin生成过程分析


2、make/makefile中的加号+,减号-和at号@的含义
3、Makefile中wildcard的介绍
4、makefile中"=" , ":=" , " : " 的区别 patsubst 以及addprefix
5、Linux之Makefile(filter)
6、我使用过的Linux命令之pwd - 显示当前工作目录
7、Makefile 里的 subst 函数
8、makefile中PHONY的重要性
9、Makefile中 -I -L -l区别
10、Makefile中include、-include、sinclude的区别
11、Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
例子:

#include<stdio.h>
int main()
{
#ifdef CPUDIR
    printf("You are right,-DCPUDIR is the same like #define CPUDIR
");
#else
    printf("Sorry,but you have to be more hard!
");
#endif
    return 0;
}
View Code
CFLAGS += -D CPUDIR
TARGET:=myapp
all:$(TARGET)

$(TARGET):main.c
    gcc $(CFLAGS) $^ -o $@
clean:
    -rm -f *.o
    -rm -f $(TARGET)
Makefile
binge@ubuntu14:~/user/my_share/src$ ./myapp
You are right,-DCPUDIR is the same like #define CPUDIR
结果

12、shell 中的>/dev/null 2>&1 是什么鬼?
13、linux sed的一个简单用法
14、GNU Objcopy语法和使用
15、sed命令
16、Sed 介绍和教程
17、sort和uniq的常见选项及其使用
18、Makefile中使用$$的使用
19、makefile下$^,$@,$?,$&lt;,$(@D),$(@F)定义使用详解
20、Make命令完全详解教程
21、uboot的autoconf.mk 以及mk.dep的产生
22、Makefile中notdir函数使用方法
23、Linux之Makefile(basename)
24、makefile 的ifeq,filter,strip 简单使用

25、if [ -x "$$BASH" ]  then.. else.. fi

26、linux bash Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

27、$(origin variable)详解

28、uboot下mkconfig脚本具体含义

29、shell中 set 指令的用法

30、Linux CAT与ECHO命令详解 (cat <<EOF>> 、cat <<EOF>)

31、Linux之Makefile(addsuffix)

32、Linux之Makefile(basename)

33、Makefile中的$(@:_config=)什么意思

Makefile 中:反引号: `date`  等同于  $(date)

GCC的常用选项:摘自https://www.cnblogs.com/edver/p/7217167.html

用法:gcc [选项] 文件...
  选项:
    -pass-exit-codes         在某一阶段退出时返回最高的错误码
    --help                   显示此帮助说明
    --target-help            显示目标机器特定的命令行选项
    (使用‘-v --help’显示子进程的命令行参数)
    -dumpspecs               显示所有内建 spec 字符串
    -dumpversion             显示编译器的版本号
    -dumpmachine             显示编译器的目标处理器
    -print-search-dirs       显示编译器的搜索路径
    -print-libgcc-file-name  显示编译器伴随库的名称
    -print-file-name=<库>    显示 <库> 的完整路径
    -print-prog-name=<程序>  显示编译器组件 <程序> 的完整路径
    -print-multi-directory   显示不同版本 libgcc 的根目录
    -print-multi-lib         显示命令行选项和多个版本库搜索路径间的映射
    -print-multi-os-directory 显示操作系统库的相对路径
    -Wa,<选项>               将逗号分隔的 <选项> 传递给汇编器
   -Wp,<选项>               将逗号分隔的 <选项> 传递给预处理器
    -Wl,<选项>               将逗号分隔的 <选项> 传递给链接器

    -Wall         打开所有编译警告
    -Xassembler <参数>       将 <参数> 传递给汇编器
    -Xpreprocessor <参数>    将 <参数> 传递给预处理器
    -Xlinker <参数>          将 <参数> 传递给链接器
    -combine                 将多个源文件一次性传递给汇编器
    -save-temps              不删除中间文件
    -pipe                    使用管道代替临时文件
    -time                    为每个子进程计时
    -specs=<文件>            用 <文件> 的内容覆盖内建的 specs 文件
    -std=<标准>              指定输入源文件遵循的标准
    --sysroot=<目录>         将 <目录> 作为头文件和库文件的根目录
    -B <目录>                将 <目录> 添加到编译器的搜索路径中
    -b <机器>                为 gcc 指定目标机器(如果有安装)
    -V <版本>                运行指定版本的 gcc(如果有安装)
    -v                       显示编译器调用的程序
    -###                     与 -v 类似,但选项被引号括住,并且不执行命令
    -E                       仅作预处理,不进行编译、汇编和链接
    -S                       编译到汇编语言,不进行汇编和链接
    -c                       编译、汇编到目标代码,不进行链接
    -o <文件>                输出到 <文件>
    -x <语言>                指定其后输入文件的语言允许的语言包括:c c++ assembler none
                           ‘none’意味着恢复默认行为,即根据文件的扩展名猜测
                           源文件的语言



原文地址:https://www.cnblogs.com/embeded-linux/p/10528876.html