Visual studio Code的C/C++开发环境搭建

文章目录

    • VS Code
    • C/C++环境配置
      • 环境准备
      • 使用实例
    • 基于 VSCode 的远程开发平台
      • 环境准备
    • 参考

VS Code

Visual Studio Code(简称VS Code)是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器,它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段和代码重构等。该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,同时还在编辑器中内置了扩展程序管理的功能

  • 官网下载 https://code.visualstudio.com/
  • C/C++插件官方文档 https://code.visualstudio.com/docs/languages/cpp

C/C++环境配置

在window下安装C/C++环境以及VSCode,并能够简单初步使用,本测试环境如下

  • VS code 1.52
  • Win 10
  • msys2 / Mingw-w64
  • CentOS7

参考官方文档 https://code.visualstudio.com/docs/cpp/config-mingw

环境准备

  • 安装gcc等相关编译链,参照之前的MSYS2开发环境搭建,并将相应的路径加入PATH环境变量中,比如:D:\msys64\mingw64\bin
  • 官网下载VS code,双击安装即可
  • 启动VScode,Ctrl + Shift + X切换到插件窗口,搜C++, 安装C/C++,C++ Intellisense以及`Chinese (Simplified) Language Pack for Visual Studio Code
    等插件

使用实例

  • 在桌面新建demo目录

  • 【文件】-【打开文件夹】选择创建的demo目录

  • 【文件】-【新建文件】demo.cpp

    #include <iostream>
    #include <vector>
    #include <string>int main(int argc, char *argv[])
    {std::cout << "Hello World" << std::endl;std::vector<std::string> cities{"JiNan", "BeiJing", "ShenZhen"};for (auto& city : cities){std::cout << city << std::endl;}return 0;
    }
    
  • 在demo.cpp编辑界面,Ctrl + Shift + P,输入 C/C++,点击 C/C++: 编辑配置 (UI),配置完成后会自动生成.vscode/c_cpp_properties.json

    • 编译器路径,如:D:/msys64/mingw64/bin/g++.exe
    • 编译器参数
    • IntelliSense 模式,我选的 gcc-x64
    • 包含路径,添加非标准化路径下的include路径
  • 在demo.cpp编辑界面,【终端】-【配置默认生成任务】在弹出的选项卡中选择要用做默认生成任务的任务,我这里选择的是C/C++: g++.exe build active file, VSCode会自动生成.vscode/tasks.json文件,文件内容如下

    {"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: g++.exe build active file","command": "D:\\msys64\\mingw64\\bin\\g++.exe","args": ["-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:\\msys64\\mingw64\\bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "compiler: D:\\msys64\\mingw64\\bin\\g++.exe"}]
    }
    
  • 在demo.cpp的编辑界面,【终端】-【运行生成任务】或者快捷键Ctrl + Shift + B,执行编译任务生成demo.exe可执行程序

  • 在demo.cpp的编辑界面,【运行】-【添加配置】在弹出的选项卡中选择环境 C++(GDB/LLDB)选在配置,我这里选的第一个 **g++.exe - 生成和调试活动文件 **,自动生成.vscode/launch.json

    {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "g++.exe - 生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "D:/msys64/mingw64/bin","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:\\msys64\\mingw64\\bin\\gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: g++.exe build active file"}]
    }
    
  • 在demo.cpp编辑界面,在行号前面出现小手,点击设置断点;【运行】-【启动调试】即可调试程序

基于 VSCode 的远程开发平台

  • VS Code Remote Development
  • Remote development over SSH

The Remote Development extension pack includes three extensions. See the following articles to get started with each of them:

  • Remote - SSH - Connect to any location by opening folders on a remote machine/VM using SSH.
  • Remote - Containers - Work with a sandboxed toolchain or container-based application inside (or mounted into) a container.
  • Remote - WSL - Get a Linux-powered development experience in the Windows Subsystem for Linux.

本文简单阐述通过SSH连接linux开发环境进行开发的过程

环境准备

  • 准备好的Linux开发环境(这里CentOS7为例)
    • yum install gcc gcc-c++ pkgconfig automake autoconf
    • cmake > 3
      • yum install epel-release
      • yum install cmake3
    • git > 2
      • yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
      • yum install git
  • 本地安装与OpenSSH兼容的ssh客户端
  • VS Code安装Remote - SSH插件

Win10下安装与OpenSSH兼容的ssh客户端安装有多种方式:

  • Windows10已经预装了OpenSSH客户端 【设置】-【应用】-【应用和功能】-【管理可选功能】,查看OpenSSH客户端是否已安装,没有就点击 添加功能进行添加;
  • Git自带ssh客户端,可以安装https://git-scm.com/download后,将Git的bin加入PATH环境变量,如路径D:\Program Files\Git\usr\bin
  • 搭建MSYS2开发环境,并安装ssh客户端

安装ssh客户端以后,配置SSH免密登录

  1. ssh-keygen -t rsa -P “” 使用默认配置,一路回车即可
  2. ssh-copy-id user@ip 拷贝秘钥到linux上。
    其实该操作是将本机~/.ssh/id_rsa.pub中的内容追加到linux环境的~/.ssh/authorized_keys文件中。如果没有ssh-copy-id命令,可以手动操作,没有~/.ssh/authorized_keys文件需要手动创建,并设置权限0600

参考

  • 手把手教你配置VS Code远程开发工具,工作效率提升N倍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络编程--文件描述符

文件描述符 在Unix和Unix-like操作系统中&#xff0c;文件描述符(file descriptor, FD)是一个文件或者像pipe或者network socket等之类的输入/输出源的唯一标识。 文件描述符通常是一个非负整数&#xff0c;负数通常代表无值或者错误。 文件描述符是POSIX API的一部分。每个除…

深信服 linux软件开发面试题整理

1、结构体可以进行比较 int memcmp ( const void * ptr1, const void * ptr2, size_t num ); Compare two blocks of memory Compares the first num bytes of the block of memory pointed by ptr1 to the first num bytes pointed by ptr2, returning zero if they all match…

大端小端模式判断以及数据转换

简介 在计算机系统中&#xff0c;我们是以字节为单位的&#xff0c;每个地址单元都对应着一个字节&#xff0c;一个字节为 8bit。但是在C语言中除了8bit的char之外&#xff0c;还有16bit的short型&#xff0c;32bit的long型&#xff08;要看具体的编译器&#xff09;&#xff…

MSYS2下搭建Qt开发环境

最近随意浏览了一下俺们大省会城市的招聘信息&#xff0c;发现C招聘中涉及Qt经验的要求有不少&#xff0c;为了牛奶和面包&#xff0c;决心深入一下Qt开发。本篇文章由此而出。 Qt 关于Qt的人生经历在这不在累赘&#xff0c;资料随处可得&#xff0c;这里只记录干货。 环境搭…

CentOS7开发环境搭建(1)

文章目录BIOS开启VT支持U盘安装系统(2019-03-11)CentOS DNS配置CentOS网络配置配置静态IP克隆虚拟机网卡名称变更 CentOS6.5时间配置安装VMWare-tools用户管理 (2019-03-15 7.6.1810)给一般账号 root 权限Samba服务配置安装必备软件获取本机公网ipyum源和第三方库源管理配置本地…

ACM 欧拉公式

给出一个数X&#xff0c;求小于X的与X互质的数的个数&#xff0c;使用欧拉公式。 如果x1*x2*...*xnX,则个数nX*(1-1/x1)*(1-/x2)*... 使用这个的题目&#xff0c;超典型 相遇周期(HDOJ)

HDU 1495 非常可乐(BFS)

思路 最难在于想到这道题是BFS&#xff0c;想到之后只有六种情况就很好理解了。 代码 #include<stdio.h> #include<string.h> #include<math.h> #include<queue> using namespace std; int a,b,s; struct shui {int count;int ha,hb,hs; }t,t1; int m…

NBU计算机专业期末考试记录

考试科目&#xff1a;操作系统 软件工程 数据库 计算机网络 JAVA高级应用 汇编 计算机算法设计 操作系统&#xff1a;题目比较简单&#xff0c;这学期的大题有写读写互斥的代码、求平均磁道数、银行家算法、页面调度算法的缺页次数计算。期中考试有参考价值&#xff0c;要看懂…

蚁群算法的若干记录

1、蚁群算法的特点&#xff1a; ① 结合了分布式算法、正反馈机制、贪婪式搜索的算法&#xff1a;正反馈可以快速发现较优解、分布式算法避免早熟收敛、贪婪式搜索有助于早期找出可解决方案&#xff1b; ② 蚁群算法具有很强的并行性&#xff1b; ③ 个体之间通过信息素合作…

蚁群算法之二

1、蚂蚁系统模型的建立 给定G(V,A)&#xff0c;其中V为定点集&#xff0c;A为各顶点互相连接组成的边集,已知各顶点之间的连接距离&#xff0c;要求确定一条长度最短的回路&#xff0c;仅遍历一次所有顶点的回路。引入记号&#xff1a; m&#xff1a;蚁群中蚂蚁的数量&#x…

ns2相关学习——tcl脚本编写(1)

新建一个仿真实例&#xff1a; set ns [new Simulator]为了让nam文件和trace文件有地方可以依托&#xff0c;我们要打开.nam文件进行写入&#xff0c;并且使用句柄nf set nf [open out.nam w] $ns namtrace-all $nf设置拓扑图 1、设置节点的脚本语言&#xff1a;建了两个节点&…

ns2相关学习——TCL脚本编写(2)

下面来学习更加复杂一点的TCL脚本的编写 简述&#xff1a;建立有4个节点的拓扑&#xff0c;其中一个节点作为路由器&#xff0c;用来将两个节点发出的数据包转发到第四个节点上面。 在这里将解释将两个节点的数据流区分开来的方法&#xff0c;展示如何去检测一个队列是否是满…

ns2相关学习——TCL脚本编写(3)

在这里我们将学习动态网络的建立 1、建立拓扑 当节点很多的时候&#xff0c;我们可以使用循环的方式来建立拓扑。 for {set i 0} {$i < 7} {incr i} {set n($i) [$ns node] }这里的数组不需要事先声明。 2、建立链接 这里我们要把7个节点链成一个环儿&#xff0c;同样使用…

NS2相关学习——完成一个新的协议(1)

接下来要进入对我来说老大难的环节了&#xff0c;从表面的TCL慢慢进入到后端的C&#xff0c;一起加油学习吧~ 在本节学习中&#xff0c;将给出一个在ns中实现新的协议的例子。但是可以想见的是&#xff0c;如果由我们自己来完成这个工作&#xff0c;势必要对NS2十分的熟悉并且要…

NS2相关学习——完成一个新协议(2)

在上节中&#xff0c;我们把教程要求的3.1-3.3过了一遍&#xff0c;这一次回到正途上来。看看到底是怎么完成一个新的协议的。 本节中的代码实现了一些简单的“ping”协议&#xff08;灵感来自“ns注释和文档”&#xff08;现在更名为ns手册&#xff09;的第9.6章中的“ping请…

NS2相关学习——完成一个新协议(3)

在前面已经基本学习了怎么完成一个新协议&#xff08;一个神奇的ping协议&#xff0c;然鹅还是有点懵。。。&#xff09; 接下来继续学习相关知识 接着上一部分从1开始 1、必要的修改 如果想要添加添加新的代理程序&#xff0c;就需要修改NS源文件中的内容&#xff0c;特别…

NS2相关学习——创建Xgraph的输出文件

经过前面学习代码的编写&#xff0c;这一部分&#xff0c;我们要学会如何进行分析&#xff0c;一个很直观的方式就是将结果图形化表示出来。 ns-allinone包的一部分是“xgraph”&#xff0c;一个绘图程序&#xff0c;可用于创建模拟结果的图形表示。 在本节中&#xff0c;将向…

NS2相关学习——在ns中模拟无线场景

之前学习的都是有线场景下的NS2相关应用&#xff0c;现在开始&#xff0c;终于要学习无线啦&#xff01;无线是我研究的重点&#xff0c;要好好学习呀&#xff01;在本节中&#xff0c;我们将学习使用ns中提供的移动无线仿真模型。 该部分由两部分组成。 在第一小节中&#xff…

An Energy-Efficient Ant-Based Routing Algorithm for Wireless Sensor Networks (无线传感网中一种基于蚁群算法的能量有效路由)

牙说&#xff1a;这篇论文是研究蚁群算法在能量有效路由协议的过程中必读的一篇文章&#xff0c;原是全英文&#xff0c;在这里按照自己的理解大致翻译成中文&#xff0c;好好学习&#xff0c;与君共勉。 论文题目&#xff1a;An Energy-Efficient Ant-Based Routing Algorith…

活在幻梦中的你我

其实仔细想想,人类和地球上的其它物种有什么不同呢?可能仅有的不同是,人类会去相信那本来并不存在的事情. 并且会为了那种虚幻的东西为止拼搏、努力。比如科技的发展&#xff0c;不就是人类在实现自己想象中的事物么&#xff0c;飞机、轮船、家电、计算机等等&#xff0c;无一…