gcc -nostartfiles; -nodefaultlibs; -nostdlib;-f...

 -nostartfiles

      连接的时候不使用标准系统的启动文件。标准系统库通常被使用,除非选项“-nostdlib”和“-nodefaultlibs”被使用。

-nodefaultlibs

     连接的使用不使用标准系统库。只有你指定的库才能够传递给连接器。与系统库有关的特定的连接选项(例如-static-libgcc 和 -shared-libgcc )将会被忽略。标准的启动文件通常会被使用,除非-nostartfiles选项被使用。

    编译器可能会生成memcmp,memset,memcpy和memmove的调用,这些entries通常会被标准库libc中的相关的entries解决。当这个选项被使用的时候,这些入口点应该通过其他的方法被提供。

 -nostdlib

    链接的时候不使用标准的系统启动文件和系统库。 没有启动文件和只用你指定的库可以被传递给连接器。与系统库有关的特定的连接选项(例如-static-libgcc 和 -shared-libgcc )将会被忽略。编译器可能会生成memcmp,memset,memcpy和memmove的调用,这些entries通常会被标准库libc中的相关的entries解决。当这个选项被使用的时候,这些入口点应该通过其他的方法被提供。

-ffunction-sections

          如果目标支持任意数目的节(sections),把每个函数和数据放置在输出文件各自的节中(sections)。  这个函数和数据的名字决定了在输出文件里各自所在节(section)的名字。

        在某个系统上使用这个选项,这个系统上的连接器能够执行优化,改善指令空间里面的本地索引。使用ELF作为目标文件格式的系统和运行在SPARC处理器上的Solaris2系统的连接器有这个选项。AIX系统的连接器将来可能有这个选项。

       当这样做有重要意义的时候才使用这个选项。当你使用这个选项的时候,汇编器和连接器会生成很大的目标文件和执行文件,整个过程会很慢。如果你在你的系统上使用了这个选项,就不行在你的系统上使用gprof这个程序。 当这个选项和-g一起使用时,你再调试的时候可能会遇到问题。

 

你可能感兴趣的:(gcc,-nostartfiles,-nostdlib,-nodefaultlibs)