当前位置: 首页 > news >正文

网站建设菜鸟教程模板建站合同

网站建设菜鸟教程,模板建站合同,外贸公司企业网站,物流建设网站From ChatGPT Prompt:教我gcc编译以及Makefile与GDB调试 好的!我来一步步教你如何使用 GCC 编译、Makefile 进行管理,以及 GDB 调试 C/C 程序。 1. 使用 GCC 编译 C/C 代码 1.1 编译 C 代码 假设有一个 C 语言程序 main.c: #…

From ChatGPT

Prompt:教我gcc编译以及Makefile与GDB调试

好的!我来一步步教你如何使用 GCC 编译、Makefile 进行管理,以及 GDB 调试 C/C++ 程序


1. 使用 GCC 编译 C/C++ 代码

1.1 编译 C 代码

假设有一个 C 语言程序 main.c

#include <stdio.h>int main() {printf("Hello, World!\n");return 0;
}

编译命令:

gcc main.c -o main

运行:

./main

1.2 编译 C++ 代码

如果是 C++ 代码 main.cpp

#include <iostream>int main() {std::cout << "Hello, C++!" << std::endl;return 0;
}

编译:

g++ main.cpp -o main

运行:

./main

1.3 启用调试信息

如果你需要用 GDB 调试,编译时加 -g

g++ -g main.cpp -o main

2. 使用 Makefile 进行编译管理

如果你的项目有多个源文件,每次编译手动输入 g++ 会很麻烦,所以可以使用 Makefile 自动化编译。

2.1 例子

假设你的项目结构如下:

project/
│── src/
│   ├── main.cpp
│   ├── add.cpp
│   ├── add.h
│── Makefile

文件 add.h:

#ifndef ADD_H
#define ADD_Hint add(int a, int b);#endif

文件 add.cpp:

#include "add.h"int add(int a, int b) {return a + b;
}

文件 main.cpp:

#include <iostream>
#include "add.h"int main() {std::cout << "3 + 4 = " << add(3, 4) << std::endl;return 0;
}

2.2 Makefile

CXX = g++
CXXFLAGS = -Wall -g
TARGET = main
SRCS = src/main.cpp src/add.cpp
OBJS = $(SRCS:.cpp=.o)$(TARGET): $(OBJS)$(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJS)src/%.o: src/%.cpp$(CXX) $(CXXFLAGS) -c $< -o $@clean:rm -f $(OBJS) $(TARGET)

2.3 使用 Make

在project目录下与运行

  • 编译:
    make
    
  • 运行:
    ./main
    
  • 清理:
    make clean
    

3. 使用 GDB 进行调试

如果你的程序有 bug,需要用 GDB(GNU Debugger) 进行调试。

3.1 先编译带调试信息的程序

g++ -g main.cpp add.cpp -o main

3.2 启动 GDB

gdb ./main

3.3 常用调试命令

命令作用
run (r)运行程序
break main (b main)main 函数设置断点
break 10 (b 10)在第 10 行代码设置断点
next (n)单步执行(不进入函数内部)
step (s)单步执行(进入函数内部)
continue (c)继续运行
print x (p x)查看变量 x 的值
info locals查看当前作用域的所有变量
quit (q)退出 GDB

3.4 调试示例

启动 GDB:

gdb ./main

main.cpp 第 5 行设断点:

b main.cpp:5

运行程序:

r

单步执行:

n

查看变量值:

p a
p b

退出:

q

总结

  • GCC/G++ 直接编译 C/C++ 程序
  • Makefile 自动化管理编译流程
  • GDB 进行调试,排查 bug

这样,你就可以用 GCC + Makefile + GDB 高效地开发 C/C++ 程序了!有问题可以随时问我 😃

http://www.dtcms.com/a/488097.html

相关文章:

  • PyQt5 串口上位机开发笔记:如何给界面更换图标
  • 响应式购物网站模板不想让网站保存密码怎么做
  • C#:函数默认参数
  • 比较指令 CMP 解析
  • 做设计接私活的网站优化近义词
  • 苏州知名网站制作设计保障性租赁住房管理平台
  • 今夕窗口批量启动排序以及窗口大小调整工具软件
  • 共建智能视觉生态,Deepano(嘀拍科技)授权世强硬创平台代理
  • HarmonyOS 用 attributeModifier 修改按钮背景但按压态不生效
  • 漳州城乡建设管理局网站贵州建设厅网站二建
  • 数字化科技简化移民流程的 5 种方式
  • DrvBsp_I2C驱动_EEPROM(二)
  • 上海设计师网站有哪些md主题 wordpress
  • 网站建设企业建站模板树脂工艺品网站建设公司
  • DMABUF 核心概念:Linux 的“共享白板”机制
  • 鸿蒙Harmony实战开发教学(No.2)-鸿蒙新项目创建+目录配置!(新手入门指南)
  • 网站开发 项目计划书运营最好的网站
  • 上海网站建设500元wordpress显示版权
  • MA模型(移动平均模型)
  • RuoYi.Net后端返回雪花ID前端精度丢失问题
  • asp网站连不上数据库网站自动化开发
  • 云信im在Android中的使用2
  • 朴素贝叶斯分类
  • pos网站源码wordpress上线需要改什么
  • 阿里巴巴上怎样做自己的网站郑州网站制作
  • 【ComfyUI】SDXL Simple 实现高质量图像生成全流程
  • 基于 STM32CubeMX 实现 FreeRTOS 可视化移植的多任务 LED 控制实践(基于 STM32F103ZET6)
  • 网站制作自己接单微分销代理
  • it项目网站开发的需求文档北京网站设计培训学校
  • Fragment与Fragment、Activity通信的方式?