创建C++编译环境
- 安装VIM PLUS
为什么安装VIM PLUS: 可以为我们提供良好的编译环境,高亮代码,智能提示等等~
git clone https://github.com/chxuan/vimplus.git ~/.vimpluscd ~/.vimplus./install.sh 运行脚本install.sh来安装vimplus(如果你是非root用户请参考这篇文章解决不在 sudoers 文件中。此事将被报告的异常)
1)此时脚本开始运行
2)选择python3解释编译ycm文件
此时脚本文件会问你是选择python2还是python3来编译ycm文件?我在这里选择3,在此之前请安装python3
3)开始安装插件
4)此时vimplus就安装成功了
- 安装Debug
- GDB和LLDB的关系
调试器描述 GDBUNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能。 LLDBLLDB(Low Level Debug)是Apple正在迁移的LLVM工具套件(包括Clang)的一部分具有REPL (Read-Eval-Print Loop,交互式解释器)、C++ 和 Python 插件,位于 Xcode 窗口底部控制台中,也有其他 IDE 加入了 LLDB 调试器,如** CLion**,当然其也可以在 terminal 中使用。
- 安装GDB调试器
yum install gdb (CentOS)
gdb -v 查看gdb是否安装成功 - 安装LLDB调试器(暂时不写)
大多数电脑还是用GDB作为调试器的,一般只有MAC使用且内置LLDB,暂时先不写这个
- 安装g++编译器
yum install gcc-g++
gcc -v 查看是否安装成功
通过g++编译程序
- 创建程序main.cpp,func.cpp,func.h
main.cpp
#include "func.h" int main() { int a,b; scanf("%d %d",&a,&b); change(&a,&b); printf("%d %d",a,b); return 0; }
func.cpp
#include "func.h" void change(int *a,int *b){ int temp; temp = *a; *a = *b; *b = temp; }
func.h
#pragma once #include <cstdio> void change(int *a,int *b);
VimPlus如图所示:
-
g++ -g main.cpp func.cpp -o out
我们详细描述一下这条指令的执行过程
- g++ main.cpp 相当于g++ -c main.cpp 目的是生成机器码文件即main.o和func.o(这里有个误区,小白往往把**.o**文件当初可执行文件,这是绝对错误的!!!)
-
g++ -g main.cpp func.cpp -o out
后面的部分是生成可执行文件out名字可以任意取 -
./out执行程序
- 设置断点
设置断点之前我们进入gdb调试
gdb out 开始Debug
b main 在main函数设置断点(此时程序会停在初始化的第一条语句)
run 执行程序 - 查看栈
frame 可以查看程序在哪一个函数
此时执行frame可以看到程序进入了change()中
我们继续执行代码,此时跳出函数后执行frame后,返回main函数中
我尝试画了一张图应该是这样
当它change()函数被执行完毕后,有返回到main函数执行