Linux编译C++

时间:2022-07-22
本文章向大家介绍Linux编译C++,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

创建C++编译环境

  • 安装VIM PLUS 为什么安装VIM PLUS: 可以为我们提供良好的编译环境,高亮代码,智能提示等等~
    1. git clone https://github.com/chxuan/vimplus.git ~/.vimplus
    2. cd ~/.vimplus
    3. ./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 我们详细描述一下这条指令的执行过程
    1. g++ main.cpp 相当于g++ -c main.cpp 目的是生成机器码文件即main.o和func.o(这里有个误区,小白往往把**.o**文件当初可执行文件,这是绝对错误的!!!)
    2. g++ -g main.cpp func.cpp -o out 后面的部分是生成可执行文件out名字可以任意取
    3. ./out执行程序
  • 设置断点 设置断点之前我们进入gdb调试 gdb out 开始Debug b main 在main函数设置断点(此时程序会停在初始化的第一条语句) run 执行程序
  • 查看栈 frame 可以查看程序在哪一个函数 此时执行frame可以看到程序进入了change()中

​ 我们继续执行代码,此时跳出函数后执行frame后,返回main函数中

​ 我尝试画了一张图应该是这样

​ 当它change()函数被执行完毕后,有返回到main函数执行