C++跨平台开发(VS2019+WSL(Ubuntu))

由于实验室任务要求,特学习了一下如何跨平台开发项目,时间有点长了,如有疏漏,还请包涵指正!

我们在开发项目的过程中,有时候会进行跨平台开发,例如,我们需要开发Linux项目,但是受到条件限制,目前只有Windows环境,如何在Windows环境下进行Linux项目开发就成了迫切的需要。

本篇介绍利用在Windows下使用VS2019编写CMake并连接WSL的方式进行Linux项目的开发。

预备介绍

WSL(windows下的Linux子系统):Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。
使用WSL不需要进行ssh连接,更加方便。

Cmake:CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。

安装WSL

在控制面板里面找到程序与功能,打开启用或关闭Windows功能
在这里插入图片描述
找到适用于Linux的Windows子系统,并勾选。
在这里插入图片描述
开始安装,之后会要求重启一次。
打开Windows应用商城( Microsoft Store),搜索WSL,下载Ubuntu(过程可能会有点满,耐心等待)
在这里插入图片描述
安装完成之后,打开,设置用户名和密码,一开始的源可能比较慢,可以换源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/security.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list
sudo sed -i 's/archive.ubuntu/mirrors.aliyun/g' /etc/apt/sources.list
sudo apt update
sudo apt-get upgrade    //更新已安装的包到最新,这个是可选的

附上其它一些apt命令

sudo apt-get update  更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package  获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall  重新安装包
sudo apt-get -f install  修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package  下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

要配置WSL安装使其与Visual Studio一起使用,需要安装以下工具:编译器(GCC或Clang),gdb,rsync和zip。如果使用的是CMake,则还需要安装基础的构建系统(Ninja或Unix Makefile)。可以通过以下命令将它们安装在使用apt的发行版中:

sudo apt update
sudo apt install g++ gdb make ninja-build rsync zip

另外,如果想要使用SSH连接,请参考这篇文章:
使用SSH连接Windows10中的Linux子系统

安装开发Linux的VS2019

VS2019的安装可以直接在官网下载,注意30天试用期,可以激活来获取更长的使用期限。

下面主要介绍一下如何配置:
开发Linux,安装程序打开后,选择Modify,然后单击Workloads选项卡。向下滚动到“其他工具集”,然后选择带有C ++工作负载的Linux开发。
在这里插入图片描述
默认情况下,对Linux的CMake支持是选中的。

开启一个Cmake项目,进入管理配置:
在这里插入图片描述
在这里插入图片描述
选择WSL-GCC-Debug,这个需要看你的WSL上安装的是G++还是Clang,参考WSL的准备
在这里插入图片描述
选择刚刚安装的Ubuntu
在这里插入图片描述选中WSL-GCC-Debug的配置
选中新配置后一般会出现上面两个红框的内容:第一个是由于远程生成需要对方Linux系统安装支持的Cmake版本;第二个是由于每个配置都有各自的CMake缓存,所以需要生成一次。
在这里插入图片描述
先点击“是”安装CMake,安装好以后点击“生成+”生成CMake Cache。首先选择“是”,点击以后会自动安装WSL的CMake。如下:
在这里插入图片描述
可能还会有许多其它问题,这里强烈安利这篇文章,写的非常好:
VS2019 C++的跨平台开发——Cmake项目(二)

都配置好之后就可以进行开发了

至于Cmake文件的编写,这里就不过多赘述了,可以参考以下几篇文章:
VS2019 C++的跨平台开发——Cmake项目(一)
CMake:CMakeLists.txt文件的编写语法
CMake 用法总结(转载)

可以拿这个项目练练手:
编写一个Linux调试器

参考资料:
利用vs2019编译器远程调试linux程序(走心版)
C ++与Visual Studio 2019和Windows子系统的Linux(WSL)
在 Visual Studio 中连接到你的目标 Linux 系统
在Visual Studio中创建CMake Linux项目
Visual Studio中的CMake项目
下载,安装和设置Linux工作负载
适用于 Linux 的 Windows 子系统安装指南 (Windows 10)
WSL-Ubuntu 更换apt源为阿里源
VS2019 C++的跨平台开发——Cmake项目(一)
VS2019 C++的跨平台开发——Cmake项目(二)
使用SSH连接Windows10中的Linux子系统
使用Visual Studio进行针对Windows和Linux的跨平台C ++开发
用于远程Linux标头的IntelliSense
CMake:CMakeLists.txt文件的编写语法
CMake 用法总结(转载)

猜你喜欢

转载自blog.csdn.net/AlienEowynWan/article/details/114270407