zoukankan      html  css  js  c++  java
  • c++基础gcc和gdb朝花夕拾

    二进制文件.o

    以点o文件为结尾的文件为二进制文件  目标文件

    gcc –o hello_world hello_world.c  会将目标文件会被删除,直接生成可执行文件

    那么什么时候需要目标文件呢?制作库文件的时候

    通过链接器将目标文件链接可以生成可执行文件,

    gcc

    gcc是 gnu cc的简称,gcc能编译c,c++,object C等语言

    gcc 【option】【filenames】

    -c 只是编译,生成目标文件

    -S 只是编译不汇编,生成汇编代码

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

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

    -o file 指定输出文件

    -v 版本

    -std=name 指定c语言的标准  c90 c89 c00等

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

    example:

    为了工程化,一个工程下一般具有src bin obj include :源文件 可执行文件  目标文件 头文件

    gcc –o bin/helloworld src/helloworld.c 

    gcc –o obj/helloword.o –c src/helloworld.c

    gcc –o bin/helloworld obj/helloworld.o

    gcc -std=c99 –o bin/helloworld src/helloworld.c //指定c语言标准

    优化选项:

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

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

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

    数字越大优化等级越高,一般用第二个,它在优化长度、编译时间和代码大小之间取得了一个比较理想的平衡点。

    linux查看运行时间 time 【filename】

    gcc –O –o bin/optimize src/optimize.c

    警告和出错选项:

    -ansi:支持符合ANSI 标准的c程序

    -pendantic 允许发出ansi c标准所列的全部警告信息

    -pendantic-error:允许发出 ANSI C 标准所列的全部错误信息

    -w 关闭所以警告

    -Wall:允许发出gcc所提供的所有有用的警报信息(跨平台可能出现的问题)

    制作库文件选项:

    -L dir:在库文件的搜索路径列表中添加dir目录

    -static:链接静态库

    -lname:链接名为name 的库文件

    -shared:表明是共享库

    gdb

    gdb调试器:基于Unix和Linux的程序调试工具,没有图形化的友好界面,与微软VC等工具所媲美

    gdb的作用:

    1. 可以按照用户的要求随意运行程序
    2. 可以让被调试的程序在用户所设定的断点处停住
    3. 可以检查此时用户程序中所发生的事,当程序被停住时
    4. 可动态改变用户程序的执行环境

    gdb的使用;

    gcc –g 【其他选项】 【文件名】

    gdb调试的是可执行程序而不是源代码,对源文件进行编译一定要加上选项-g才包含调试信息

    gdb 可执行文件

    l(list)":查看所载入的文件

    b(break):设置断点,程序运行到断点停止,后面可以跟上行号或者函数的名字

    info b:查看设置的断点的情况

    r(run):从第一行开始运行代码,或从指定行开始,可在r后面加上行号

    p n:查看变量n的值

    n(next):单步运行下一行代码(遇到函数不会进入函数)
    s(strp):单步运行下一行代码(遇到函数会进入函数)

    c(continue):恢复程序的运行,执行剩余的程序

    随便用
  • 相关阅读:
    "分段器"组件:<segment> —— 快应用组件库H-UI
    "页内标签"组件:<tab> —— 快应用组件库H-UI
    "标签栏"组件:<main-tab> —— 快应用组件库H-UI
    "导航栏"组件:<nav-bar> —— 快应用组件库H-UI
    如何配置pch文件
    如何清除Xcode8打印的系统日志
    iOS打包ipa给客户测试流程
    如何安装ipa文件
    如何获取苹果手机的UDID
    iOS键盘输入屏幕上移
  • 原文地址:https://www.cnblogs.com/pqhuang/p/12850938.html
Copyright © 2011-2022 走看看