news 2026/4/16 13:01:25

用windows10的linux子系统在visual studio2019中用C语言开发linux项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用windows10的linux子系统在visual studio2019中用C语言开发linux项目

用windows10的linux子系统在visual studio2019中用C语言开发linux项目

要在 Windows 10 上使用 Linux 子系统 (WSL) 配合 Visual Studio 2019 开发 Linux C 语言项目,核心是通过 VS 的“Linux 开发”功能连接并调用 WSL 环境中的 GCC 工具链进行编译和调试。

整个流程可以分为环境准备、集成配置和项目开发三个阶段,下图清晰地展示了主要的操作路径:

第一步:搭建基础环境

这是后续所有工作的基础,你需要安装WSL和相应的V

1、安装并配置 WSL

  • 启用功能:以管理员身份打开 PowerShell 或命令提示符,输入wsl --install并重启电脑。这个命令会启用必要的Windows功能并安装默认的Ubuntu发行版。

  • 选择发行版:你也可以通过wsl --list --online查看可用发行版列表,并使用wsl --install -d <发行版名称>安装特定版本。

  • 初始设置:安装后,从开始菜单启动 Ubuntu,系统会提示你创建专用的 Linux 用户名和密码

可参考:在 Windows 上安装 Linux_适用于 linux 的 windows 子系统-CSDN博客

2、安装 Visual Studio 2019 组件

  • 打开Visual Studio Installer,找到你的 VS2019 实例,点击“修改”。

  • 在工作负载选项卡中,确保勾选“使用 C++ 的桌面开发”

  • 最重要的是,必须勾选“使用 C++ 的 Linux 开发”“使用 C++ 的跨平台开发”工作负载。这个组件提供了与远程系统(包括WSL)连接、编译和调试所需的工具。

可参考:在 Visual Studio 中安装 C++ Linux 工作负载-CSDN博客

第二步:在 Visual Studio 中配置 WSL 连接

环境准备好后,需要让 VS 知道如何连接 WSL。

1、启动 Visual Studio 2019

启动 Visual Studio 2019,打开菜单栏的“工具” --> “选项”-->“跨平台” --> “连接管理器”

2、添加“跨平台连接管理器”

点击“添加”按钮。此时,如果你的 WSL 已正确安装,在“主机名”或“连接目标”的下拉列表中,通常可以直接选择你的 WSL 发行版(例如Ubuntu)。这与连接远程Linux服务器不同,无需手动输入IP地址。

3、连接“跨平台管理器”

点击连接,根据提示输入你首次启动WSL时设置的Linux用户名和密码即可完成认证。

关键配置步骤

主机名: localhost 端口: 22 身份验证类型: 密码 用户名: <你的 WSL 用户名> 密码: <你的 WSL 密码>

第三步:创建项目

常见的问题:

1、点击连接后,连接配置 localhost:22 报红

在VS2019中连接WSL时,如果填写localhost:22并“报红”,说明SSH连接无法建立。这通常是WSL内的SSH服务未正确运行或配置导致的,我们可以按以下步骤排查解决。

先打开WSL终端(如Ubuntu),执行下面这些检查。

第一步:基础检查与关键配置

1、检查并安装SSH服务
输入sudo service ssh status。如果显示“not running”或“inactive”,说明SSH服务没运行。运行以下命令来安装和启动它:

bash

sudo apt update && sudo apt install openssh-server -y sudo service ssh start

如果已安装但启动失败,可能需要先卸载再重装(sudo apt remove openssh-server后再安装)。

2、检查SSH服务端口监听
运行sudo ss -tunlp | grep sshdsudo netstat -tunlp | grep ssh。正常情况会看到0.0.0.0:22127.0.0.1:22。如果看到的是:::22(IPv6地址),可以在下一步配置中强制使用IPv4。

3、修改SSH服务器配置(关键)
编辑配置文件:sudo vim /etc/ssh/sshd_config,确保以下参数正确,修改后需要重启SSH服务(sudo service ssh restart

  • Port 22:确保该行没有被注释(即行首没有#)。

  • PasswordAuthentication yes:确保该行没有被注释,允许使用密码认证。

  • PermitRootLogin yes:这一行可以根据需要设置,如果使用普通用户连接可保持默认。

  • ListenAddress 0.0.0.0:可以添加这一行(或确保未被注释),让SSH服务监听所有网络接口,包括对Windows主机的连接。

4、解决可能的主机密钥问题
如果SSH服务启动时报错“Could not load host key”,说明密钥文件缺失。可以运行以下命令生成:

bash

sudo ssh-keygen -A

然后再次尝试启动SSH服务。

第二步:解决特殊网络环境问题

完成基础配置后,如果问题依旧,可能和你的网络环境有关。

  • 情况一:使用了网络代理

    如果Windows系统设置了全局代理,WSL启动时可能会提示“检测到 localhost 代理配置,但未镜像到 WSL”。

    • 如果你需要WSL使用代理:在Windows用户目录(如C:\Users\<你的用户名>\)下创建或编辑.wslconfig文件,添加以下内容并重启WSL(wsl --shutdown):

      ini

      [experimental] autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true autoProxy=true
    • 如果你不需要WSL使用代理:可以忽略该警告,或关闭Windows的全局代理设置后再试。

  • 情况二:端口冲突或防火墙问题
    这是相对少见的原因,但如果前述步骤无效,可以检查:

    • 端口冲突:Windows本机是否运行了其他占用22端口的服务(如其他SSH服务器)。可以尝试在WSL中修改sshd_config里的Port为其他端口(如2222),并在VS2019中相应更改端口号。

    • 防火墙:通常情况下,Windows防火墙对localhost(127.0.0.1)的连接是放行的。如果怀疑防火墙问题,可以临时关闭防火墙测试,但不建议长期关闭。

第三步:在VS2019中重新连接

完成上述步骤并确保WSL内的SSH服务正常运行后,回到VS2019的“工具”->“选项”->“跨平台”->“连接管理器”

点击“添加”,这次在“主机名”处可以尝试直接填写127.0.0.1(而不是localhost,端口填写你配置的端口(默认22),然后输入你的WSL用户名和密码进行连接。

核心是确保WSL内部的SSH服务(openssh-server)已正确安装、配置并运行起来。绝大多数“报红”问题都出在这里。建议你从第一步开始逐一检查,并在每一步之后尝试重新连接。

2、

3、

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:59:00

一键解决MacBook WiFi不稳定问题:专业脚本工具完全指南

一键解决MacBook WiFi不稳定问题&#xff1a;专业脚本工具完全指南 【免费下载链接】awdl_wifi_scripts Scripts to disable awdl 项目地址: https://gitcode.com/gh_mirrors/aw/awdl_wifi_scripts 还在为MacBook的WiFi连接时断时续而烦恼吗&#xff1f;awdl_wifi_scrip…

作者头像 李华
网站建设 2026/4/10 23:26:54

Zotero文献管理革命:Linter插件让杂乱文献库秒变规整

你是否曾经为文献库中的混乱格式而头疼&#xff1f;标题大小写不统一、期刊名称格式各异、重复文献难以识别……这些问题不仅影响美观&#xff0c;更严重降低了研究效率。今天&#xff0c;我们要介绍的就是专门解决这些痛点的Zotero Linter插件——一款能让你的文献库从"混…

作者头像 李华
网站建设 2026/4/7 5:10:38

抖音直播数据采集神器:douyin-live-go 完全使用手册

抖音直播数据采集神器&#xff1a;douyin-live-go 完全使用手册 【免费下载链接】douyin-live-go 抖音(web) 弹幕爬虫 golang 实现 项目地址: https://gitcode.com/gh_mirrors/do/douyin-live-go 在数字化营销时代&#xff0c;抖音直播已成为品牌营销和用户互动的重要阵…

作者头像 李华
网站建设 2026/4/16 12:26:10

Java压缩技术终极指南:7-Zip-JBinding跨平台解决方案

Java压缩技术终极指南&#xff1a;7-Zip-JBinding跨平台解决方案 【免费下载链接】sevenzipjbinding 7-Zip-JBinding 项目地址: https://gitcode.com/gh_mirrors/se/sevenzipjbinding 在Java应用开发中&#xff0c;处理压缩文件常常是绕不开的技术需求。无论是文件备份、…

作者头像 李华
网站建设 2026/4/15 22:17:29

Kafka-King:颠覆传统运维的Kafka可视化神器

Kafka-King&#xff1a;颠覆传统运维的Kafka可视化神器 【免费下载链接】Kafka-King A modern and practical kafka GUI client 项目地址: https://gitcode.com/gh_mirrors/ka/Kafka-King 在当今数据驱动的时代&#xff0c;Kafka已成为企业级消息系统的标准配置&#xf…

作者头像 李华
网站建设 2026/3/28 16:22:01

RocketMQ与Flink实时数据处理架构实战解析

RocketMQ与Flink实时数据处理架构实战解析 【免费下载链接】rocketmq-flink RocketMQ integration for Apache Flink. This module includes the RocketMQ source and sink that allows a flink job to either write messages into a topic or read from topics in a flink job…

作者头像 李华