美文网首页
Linux 环境编程读书笔记1

Linux 环境编程读书笔记1

作者: linnvv_0011 | 来源:发表于2017-12-06 14:45 被阅读0次

    标签(空格分隔): linux posix api


    gcc编译相关选项:

    • gcc -E hello.c > hello.Sss

      预处理hello.c,生成预处理后文件hello.i,即是后续的编译、汇编、链接操作不做。

    • gcc -S hello.c > hello.s

      编译产生汇编文件。

    • gcc -c hello.c > hello.o

      生成目标文件。

    • gcc -v -g hello.c > hello

      查看完整和详细的gcc编译过程。查看gcc在背后所做的具体事情。

    二进制文件分段(readelf查看格式):

    • text段为代码段,用于保存可执行指令。

    • data用于保存有非0初始值的全局变量和静态变量。

    • bss段用于保存没有初始值或初始值为0的全局变量和静态变量。

      这个段并不占用空间--因为完全没有必要。

    • debug段:保存调试信息。

      加-g选项则生成信息,否则不生成。
      stip去掉符号信息。

    • dymamic段:用于保存动态链接信息。

    • fini段:用于保存进程退出时执行程序。当进程结束时,系统会自动执行这部分代码。

    • init段:用于保存进程启动时的执行程序。当进程启动时,系统会自动执行这部分代码。

    • rodata段:用于保存只读数据,如const修饰的全局变量、字符串常量。

    • symtab段:用于保存符号表。

    相关文章

      网友评论

          本文标题:Linux 环境编程读书笔记1

          本文链接:https://www.haomeiwen.com/subject/orzkixtx.html