zoukankan      html  css  js  c++  java
  • c语言基础---编译调试文件

    注释

    多行注释
    /*
    * 注释说明
    */
    
    单行注释
    // 注释说明

     gcc编译文件

    // 通过目标文件再生成可执行文件
    源文件生成目标文件(二进制文件),目标文件生成可执行文件
    gcc -o 目标文件.o -c 源文件.c
    gcc -o 可执行文件 目标文件.o
    // 直接生成可执行文件,执行时是系统自动生成了一个临时目标文件,系统执行完删除了临时目标文件 gcc -o 可执行文件 源文件.c

    编译流程

    预处理阶段:

    1 引入 include 文件

    2 删除注释

    3 宏替换

    4 条件编译

    objdump -xd 链接文件   // 反汇编

     

     

    gcc 语法

    gcc [options] [filenames]

    基本选项

    -c:只是编译不链接,生成目标文 " . o "

    - s 只编译不汇编 ,生成汇编代码

    -E :只进行预编译,不做其它处理

    -g :在可执行程序中包含标准调试信息

    -o  file :指定输出文件

    - v :打印出编译器内部编译各过程的命令行信息和编译器的版本。

    -std = name :指定 C 语言的标准(如: c99 等), 必须在 -o 前面

    -l dir :在头文件的搜索路径列表中添加 dir 目录。

    优化选项, 必须在 -o 前面

    -O :减小代码的长度和执行时间,效果等价于-O1 ,其中包括包括线程跳转和延迟退栈。

    -O2 :除完成所有 -O1 级别的优化之外,同时还要进行一些额外的调整工作,如处理器指令调度等。

    -O3 :除完成所有- O2 级别的优化之外,还包括循环展开和其他一些与处理器特性相关的优化工作。

    数字越大优化的等级越高,也就意味着程序的运行速度越快。一般选用-O2 选项,它在优化长度、编译时间和代码大小之间取得了一个比较理想的平衡点。

    警告和出错选项:
    -ansi :支持符合 ANSI 标准的 C 程序
    -pedantic :允许发出 ANSIC 标准所列的全部警告信息
    -pedantic-error :允许发出 ANSIC 标准所列的全部错误信息
    -w :关闭所有警告
    -wall :允许发出 gcc 所提供的所有有用的报替信息, 必须在 -o 前面,出现 error 不生成可执行文件;出现 waing 生成可执行文件

    制作库文件选项:
    -L dir :在库文件的搜索路径列表中添加 dir 目录
    -static :链接静态库
    -Iname :链接名为 name 的库文件
    -shared :表明是使用共享库

    gdb 调试器

    b 行号/函数名

    quit 退出调试

    gdb core

     

    make

     

     

     

     

     

  • 相关阅读:
    [WC2011]最大XOR和路径 线性基
    线段树分裂合并
    [NOIp2016]天天爱跑步 线段树合并
    CF1111E Tree 树链剖分,DP
    [NOI2016]区间 线段树
    [IOI2018] werewolf 狼人 kruskal重构树,主席树
    [CQOI2012]组装 贪心
    [ONTAK2010]Peaks kruskal重构树,主席树
    [NOI2018]归程 kruskal重构树
    kruskal重构树
  • 原文地址:https://www.cnblogs.com/xuey/p/12158692.html
Copyright © 2011-2022 走看看