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\n"); #else printf("Sorry,but you have to be more hard!\n"); #endif return 0; }
CFLAGS += -D CPUDIR TARGET:=myapp all:$(TARGET) $(TARGET):main.c gcc $(CFLAGS) $^ -o $@ clean: -rm -f *.o -rm -f $(TARGET)
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下$^,$@,$?,$<,$(@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, $#, $*, $@, $?, $$和命令行参数
30、Linux CAT与ECHO命令详解 (cat <<EOF>> 、cat <<EOF>)
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’意味着恢复默认行为,即根据文件的扩展名猜测
源文件的语言