gcc不常用编译参数理解

-nostdinc 不在系统目录中寻找头文件,只使用-I参数指定的目录。

-nostartfiles 连接的时候不使用系统的启动文件,但是仍然包含标准库。这样可以使程序在没有main函数下也能运行。

-fno-builtin 不生成内建函数,例如:默认情况下gcc会把memcpy函数转换成循环复制代码段(inline copy loops),而不是调用memcpy函数。

-nostdlib 不使用系统启动文件和标准库,除非在ld参数中指定。

-ffreestanding 不包含标准库,启动程序,以及内建函数(同fno-builtin参数)。