linux下使用cmake和vscode进行C/C++开发( 二)环境配置与代码实例
Cmake_Vscode_C/C++开发 二
- 一 虚拟机完整环境配置
- 1 NAT 网络配置
- 2 安装 open-vm-tools 和 图形化支持
- 3 配置 VMware 共享文件夹
- 4 配置 开机自动挂载共享文件
- 5 验证 vmtool与共享文件夹
- 6 安装 vscode
- 二 Vscode + Cmake完整实现流程
- 1 Cmak 编译C++过程
- 2 工具使用:CMake Tools
一 虚拟机完整环境配置
本章介绍在新装好虚拟机后,对ubuntu进行基本配置
,设置一些通用操作。从安装虚拟机后:配置网络、跨平台复制文本、共享文件夹挂载、到vscode安装,完整的图文流程
。
1 NAT 网络配置
NAT模式:当虚拟机尝试访问外部网络时,NAT设备(在VMware中通常是vmnet8虚拟交换机)会捕获这些请求,并将虚拟机的内部IP地址替换为宿主机的外部IP地址,配置简单,适合个人学习使用。
1 关闭虚拟机
下图,若应用为灰色,则无需修改
打开控制面板,网络共享中心,wifi
或 宽带 点击位置相同
若是宽带连接,所有选项全部勾选接即可,注意选:vmnet8
重启虚拟机即可
2 安装 open-vm-tools 和 图形化支持
实现文本内容
从winwods->linux的复制,省去很多麻烦。(还包括小文件
右键复制粘贴
,如 txt,文档类,也能够直接复制,视频等稍微大文件建议用下一步的共享文件)
-
更新系统包列表:
sudo apt update
-
安装 open-vm-tools 和桌面增强包:
sudo apt install open-vm-tools open-vm-tools-desktop
-
重启虚拟机:
sudo reboot
在虚拟机设置中,勾选 拖放 与 粘贴
注:不要混合安装vmtools,和open-vm-tools,只装有一个就可以
3 配置 VMware 共享文件夹
1 宿主机设置:
- 关闭 Ubuntu 虚拟机。
- 在 VMware 界面中:右键虚拟机 > 设置 > 选项 > 共享文件夹。
- 启用共享文件夹,添加宿主机要共享的目录(例如命名为
vmshare
)。 - 启动虚拟机。
2 在 Ubuntu 中创建挂载点
sudo mkdir -p /mnt/hgfs
sudo chmod 777 /mnt/hgfs #临时放宽权限测试
3 验证共享文件夹名称
vmware-hgfsclient #输出应为宿主机设置的共享文件夹名称(如 `vmshare`)
4 配置 开机自动挂载共享文件
共享文件夹手动挂载只管用一次,虚拟机重启后需要重新挂载,为了方便,通过 /etc/fstab
自动挂载,过程如下:
-
编辑
/etc/fstab
文件:sudo nano /etc/fstab
-
在文件末尾添加以下内容(替换
shared_folder
为实际名称):.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0
位置如下
-
保存后执行挂载测试:
sudo mount -a ls /mnt/hgfs # 应显示宿主机共享的文件,则挂载成功
实现效果,一个windows和ubuntu的共享文件夹
5 验证 vmtool与共享文件夹
-
重启虚拟机:
sudo reboot
-
检查挂载状态:
df -h | grep hgfs # 应显示 `/mnt/hgfs` 已挂载,就是fuse ls /mnt/hgfs # 应显示宿主机共享的文件
-
检查open-vmware-tool服务状态:
成功后,开机就直接可以跨平台
复制文字
,并且支持把window上的txt、png/jpg、xls/word 等文档类文件,右键复制粘贴过来。systemctl status open-vm-tools # 确保服务运行正常,按q退出
效果如下
注意
从windows->linux:
大文件
诸如视频不要
直接右键复制,容易出问题。大文件建议通过共享文件夹
传输;其次,linux->windows文件传输,不论大小,建议全都通过共享文件夹。
6 安装 vscode
本节介绍vscode的安装与配置
0. 先在ubuntu中配置C++环境
(1)安装gcc
sudo apt-get update
gcc -v # 检查一下是否已安装gcc
sudo apt install gcc
(2)安装gdb
gdb -v # 检查一下是否已经安装gdb
sudo apt-get install build-essential gdb
(3)查看安装位置
whereis g++
whereis gdb
1 打开内置浏览器
在火狐中,直接百度搜索:vscode官网 ,进入
移动 deb包 到桌面,使用终端打开安装(方便查看的位置)
移到桌面后,使用解压命令:
sudo dpkg -i code_1.78.2-1683731010_amd64.deb
版本号用tab补全
出现特殊提示,yes处按下回车
3 在终端中输入 code ,回车打开vscode软件
code
点击这里:
添加如下基础插件,C/C++ ,Cmake 必添
二 Vscode + Cmake完整实现流程
本章介绍如何用vscode编辑
代码,并通过cmake
编译运行,以及介绍了一种方便快捷的cmake插件工具。
1 Cmak 编译C++过程
本节介绍cmake
安装方法与具体使用,每一步都有效果图对应参考。
1 安装cmake 与 tree
sudo apt install cmake #安装CMAKE
sudo apt install tree #安装tree
命令:tree 能够以树形显示当前目录结构
如:查看挂载目录
2 建立项目文件目录
mkdir Cmake_test #建立项目文件夹
cd Cmake_test
mkdir build #创建build文件夹(工作空间)
mkdir include #创建include文件夹(工作空间)
mkdir src #创建src文件夹(工作空间)
#或 mkdir build include src
touch CMakeLists.txt
touch main.cpp #在vscode里可以直接拖到src中
code . #用VS code打开该文件夹
效果图如下:
vscode进入,可查看目录结构
3 设计一段小程序求最大公约数
项目结构:
1 main.cpp
#include
#include "gcd.h"
using namespace std;
int main(){
int n,m;
cin>>n>>m;
cout<<"最大公因数为:"<<gcd(n,m);
}
2 gcd.h
#ifndef GCD_H
#define GCD_H
int gcd(int a,int b);
#endif
3 gcd.cpp
#include "gcd.h"
int gcd(int a,int b){
int t=a,r;
if(a<b){
a=b;
b=t;
}
r=a%b;
if(r==0) return b;
return gcd(b,r);
}
【注意】请把下图、左侧的 main.cpp 拖到 src 文件内
4 编写CmakeLists文件
代码部分:
cmake_minimum_required(VERSION 2.8.12)
PROJECT(Cmake_test)
# 设置 C++ 标准
set( CMAKE_CXX_FLAGS "-std=c++11")
# 添加源文件
file(GLOB SOURCES "src/*.cpp")
# 添加头文件路径
include_directories(include)
# 生成可执行文件
add_executable(gcd_demo ${SOURCES})
从shell终端
执行编译:
cd build #去到build目录生成,不污染文件目录
cmake .. #执行CMakeLIsts.txt
make #执行make程序
./可执行文件名 #在终端运行程序,输入俩数,计算GCD
效果图:
打开该执行文件:
这便是使用vscode编辑代码,
通过cmakelist控制编译代码,make
程序执行cmakelist.txt
文档,最终生成可执行文件,并执行的全过程。
【注意】源代码修改后,保存,需要
重新执行
cmake … 与make命令,生成新的可执行文件。
在该过程中,是单纯用CMake进行编译,而VS Code只进行代码编辑。代码甚至还会报错
2 工具使用:CMake Tools
每次修改若只能通过cmake与make指令效率低
下,推荐使用插件
简化流程:
1 界面与文件目录
(1)文件夹后的小铅笔,配置项目信息
(2)配置:先选中后2项模式,后点击带有箭头的图标。
配置成功:
查看build目录变化:
可知,此处等价于 cmake … 操作
(3)生成:生成可执行文件,点击后验证如下:
生成成功:
终端目录变化:
等价于make,仅增加一个可执行文件
(4)启动可执行文件,运行程序
在终端操作如下:
等价于在bulid目录:
./可执行文件
使用cmake tool 总体操更快捷方便,编写好cmakelist.txt文档、或修改程序后,可快速运行程序。
最后还有一种方式,便是通过修改vscode的 .json
文档,可直接通过vscode三角按钮
编译运行,此处暂时不再讨论,另外此法也可解决vscode文档报错的问题,不足之处,欢迎指正。