OS——gcc、g++、gdb、vim、vs code的基本使用

如果想要学习如何在CentOS 7中安装配置gcc、g++、gdb、zhs和oh-my-zsh,可以点击这里

g++的使用

gcc同理于g++的基本操作,只需要将所有g++命令切换成gcc并且将编译的文件换成.c后缀的即可

前文已经说明g++等的环境配置
现在开始使用vim来编写并运行一个简单的hello world

首先在桌面创建一个文件夹,然后在终端中打开这个文件夹
输入(如果不会使用vim可以参考文末)

vim hello.cpp

输入以下代码

#include <iostream>
using namespace std;

int main(){
        cout<<"hello world!!!"<<endl;
        return 0;
}

然后输入

g++ hello.cpp

或者(这种输入会遇到什么情况会在下文说明)

gcc main.c -o main.exe

g++ hello.cpp命令完成之后输入ls命令可以看到,当前文件夹下面多出来了一个a.out文件
在这里插入图片描述
在这里插入图片描述

然后输入命令

./a.out

或者

./a.out hello.cpp
# 你的cpp文件名称.cpp

可以得到
在这里插入图片描述

其他编译情况说明:
如果您输入的是gcc main.c -o main.exe则会看到

[你的用户名@centos-7 你的文件夹名字]$ ls
main.cpp  main.exe

此时同理于a.out,只需要输入

./main.exe

即可运行,并且的到相同结果!
甚至在-o后面的参数可以不加后缀,并且随意命名,比如gcc main.c -o test
编译完成之后也会产生一个test文件,并且不带后缀,此时输入

./test

即可运行,并且的到相同结果!


至此已经完成g++基本操作,经过简单的分析可以总结出:

首先我们知道一个程序的运行需要两个步骤:第一步是编译,第二步是运行,我们g++命令所做的工作就是将我们编写的程序代码给编译一边,如果编译通过了,就会生成一个a.out文件用于程序的运行,接下来只需要调用a.out就可以顺利运行了

gdb的使用

前面我们已经介绍了如何使用g++去编译运行一个简单的C程序,但是我们发现如果我们去写一个代码量比较多的程序,通过g++的编译错误提示去纠正调试,就变得非常非常的繁琐,那么有没有什么更加优雅的debug方式呢?

答案就是gdb

在安装完成gdb之后,直接在我们编写好cpp文件的文件夹下输入命令

gdb main.cpp

可以发现在提示信息的最后写有 不可识别的文件格式

在这里插入图片描述

那么如何使我们的运行文件可以被识别呢?

在编写时在gcc main.c -o main后添加上-g即可使文件被识别

在这里插入图片描述
可以看到文件路径后面的symbols是done

指令作用
(gdb) b xxxbreak 在源代码指定的某一行设置断点,其中 xxx 用于指定具体打断点的位置。
(gdb) rrun 执行被调试的程序,其会自动在第一个断点处暂停执行。
(gdb) ccontinue 当程序在某一断点处停止运行后,使用该指令可以继续执行,直至遇到下一个断点或者程序结束。
(gdb) nnext 令程序一行代码一行代码的执行。
(gdb) p xxxprint 打印指定变量的值,其中 xxx 指的就是某一变量名。
(gdb) llist 显示源程序代码的内容,包括各行代码所在的行号。
(gdb) qquit 退出

进入gdb之后可以输入以上指令进行调试,如果需要查看帮助,直接输入help即可

vim的使用

vim用于在终端中创建并编写一个文件,vi和vim操作相同,只是缺少色彩提示而已(意思就是使用vi命令去编辑一个文本,编辑的时候是黑白的,不好看)

比如我想要写一个main.cpp文件那么我需要在终端中输入

vim main.cpp

同理我也可以写一个.txt文件

vim data.txt

输入完成之后我们会进入vim编辑模式,情况类似于下图
在这里插入图片描述

此时我们不论在键盘上做任何输入,都不会输入到main.cpp中去,原因是我们还没有进入编辑模式

此时键盘输入i即可进入编辑模式

i

然后输入以下内容给.cpp文件

#include <iostream>
using namespace std;

int main(){
        cout<<"hello world!!!"<<endl;
        return 0;
}

输入完成之后在键盘上点击ESC输入

:wq

即可保存我们所编写的内容


至此我们已经完成了vim编写一个文件的基本操作,但是我们发现在使用的过程中会遇到很多其他的问题:

  • 情况一:

我们发现修改了一个不该修改的文件,或者修改错了一个文件的一些内容,但是我们并不记得原本是什么内容的了,此时键盘上点击ESC输入

:q!

此时可以强制离开vim编辑模式,并且不对我们所改写的内容进行保存

  • 情况二:

我们需要对一个只读文件进行改写,虽然我们有权限对这个文件进行读操作,但是我们的改写操作都是无效的此时我们可以先进入编辑模式(输入i)然后在改写完成之后输入

:wq!

这个命令可以强制改写文件


其他说明:

w代表:写
q代表:离开
!代表:强制
使用三者的组合可以完成我们的一些基本需求

vscode的使用

vs code的安装

如果觉得使用vim编写还是不够方便可以在centos上下载一个vs code去写代码
此处介绍如何在CentOS 7中安装vs code(一步一步ctrl cv就行了)

  1. 导入Microsoft GPG key:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  1. 打开你的文本编辑器,并且创建源仓库文件,将下面的内容粘贴进去,并且启用 VS Code 源:
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'


yum check-update
  1. 安装最新版本的 Visual Studio Code
sudo yum install code

打开vs code

/usr/share/code/bin/code

或者直接在用户模式下输入code也可以直接打开vs code

vs code中C++的编译运行配置

首先要保证Linux中已经安装了g++,不会安装可以查阅这篇文档

如何在vs code中编写运行一个cpp文件呢?

方法一:使用vs code提供的插件

  1. 安装插件

应用商店中搜索插件 C/C++Code Runner
安装完成之后在工作区添加一个文件夹到你指定的目录下,然后在文件夹下添加一个文件,插入以下代码

#include <iostream>
using namespace std;

int main(){
        cout<<"hello world!!!"<<endl;
        return 0;
}

然后Ctrl+S保存文件,并命名为后缀为.cpp的文件
此时可以看到右上角有一个三角形的符号(如果没有安装Code Runner插件是不会存在的)

在这里插入图片描述

点击那个三角形就可以编译运行了


方法二:

前面的步骤(安装插件、添加文件夹到工作区、创建一个cpp文件)都和方法一相同,但是不需要安装Code Runner插件

昨晚这些工作之后我们需要在文件夹下添加一个新的名为.vscode的文件夹,在这个文件夹里添加两个文件launch.jsontasks.json

将以下内容添加进入两个文件中

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C/C++",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "compile",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

tasks.json

{
    "version": "2.0.0",
    "tasks": [{
            "label": "compile",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

完成之后是这样的:

在这里插入图片描述

CODE和main.cpp是我自己命名的文件和文件夹名称

操作完成之后记得Ctrl+S进行文件的保存

然后键入F5就可以编译运行了!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值