1. objdump -i //显示当前计算机可用的架构和目标结构列表

GCC编译选项

  1. -g,生成供调试用的可执行文件,可以在gdb中运行。由于文件中包含了调试信息因此运行效率很低,且文件也大不少
  2. -S:生成名为source_file.s的汇编代码
  3. -O(大写的字母O),编译器对代码进行自动优化编译,输出效率更高的可执行文件。
  4. -O 后面还可以跟上数字指定优化级别,如:gcc -O2 source_file.c 数字越大,越加优化。
  5. -w 关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。
  6. -Wall 编译后显示所有警告。
  7. -W 选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。
  8. -l 指定所使用到的函数库,本例中链接器会尝试链接名为libxxx.a的函数库。
  9. -L 指定函数库所在的文件夹,本例中链接器会尝试搜索/path/to/lib文件夹。
  10. -I 指定头文件所在的文件夹,本例中预编译器会尝试搜索/path/to/include文件夹。
  11. -Dname
  12. 预定义一个名为name 的宏,值为1
  13. 例子: $ gcc -DTEST_CONFIG test.c -o test
  14. -Dname =definition 预定义名为name ,值为definition 的宏。
  15. -fno-builtin 就是在定义函数的时候和C语言的内建函数重名了,不使用C语言的内建函数,而使用自己定义的
  16. -fno-PIC PIC全称是Position Independent Code,该选项禁止位置相关的代码

Makefile的一些规则

**$(call <expression>,<parm1>,<parm2>,<parm3>,...)**

expression参数中的变量$(1)、$(2)、$(3)等,会被参数parm1,parm2,parm3依次取代。而expression的返回值就是 call 函数的返回值。