新民专业网站开发公司,用c 做网站,泗洪网站建设,专业网站设计推荐在 Windows 上 基于“适用于 Linux 的 Windows 子系统(WSL)”开发linux项目
建议为跨平台或将设为开源的项目使用 CMake。 可以使用 CMake 项目在 Windows、适用于 Linux 的 Windows 子系统 (WSL) 和远程系统上生成和调试相同源代码。
1、必须确保 Windows上 的Visual Studio…在 Windows 上 基于“适用于 Linux 的 Windows 子系统(WSL)”开发linux项目建议为跨平台或将设为开源的项目使用 CMake。 可以使用 CMake 项目在 Windows、适用于 Linux 的 Windows 子系统 (WSL) 和远程系统上生成和调试相同源代码。1、必须确保 Windows上 的Visual Studio 支持C 的 Linux 开发首先请确保已安装 Visual Studio Linux 工作负载包括 CMake 组件。它属于 Visual Studio 安装程序中的“使用 C 的 Linux 开发”工作负载。可参阅下载、安装和设置 Linux 工作负载-CSDN博客CMake 是一种跨平台开源工具用于定义在多个平台上运行的生成过程。 本文假定你熟悉 CMake。 有关 CMake 的详细信息请参阅 CMake 文档https://cmake.org/cmake/help/latest/index.html#。 建议从 CMake 教程 https://cmake.org/cmake/help/latest/guide/tutorial/index.html#guide:CMake%20Tutorial开始了解详细信息。Visual Studio 对 CMake 的本机支持允许你从 Visual Studio 的同一实例编辑、生成和调试 Windows 上的 CMake 项目、适用于 Linux 的 Windows 子系统WSL和远程系统。 CMake 项目文件例如CMakeLists.txt直接由 Visual Studio 使用以实现 IntelliSense 和浏览功能。 Visual Studio 直接调用 cmake.exe 进行 CMake 配置和生成。“用于 Windows 的 C CMake 工具”作为“使用 C 的桌面开发”和“使用 C 的 Linux 开发”工作负载的一部分进行安装。 跨平台 CMake 开发需要适用于 Windows 的 C CMake 工具和“使用 C 的 Linux 开发”。2、使用 Visual Studio 连接到 WSL的 Linux 系统可以将 Linux 项目配置为以远程计算机或适用于 Linux 的 Windows 子系统 (WSL) 为目标。 对于远程计算机需要在 Visual Studio 中设置远程连接可参考使用 Visual Studio 连接到目标 Linux 系统 | Microsoft Learn。 对于 WSL只需要连接到 WSL。连接到 WSLLinux 安装程序WSL 上的 Ubuntu从 Visual Studio 2019 版本 16.1 开始Visual Studio 本机支持将 C 与适用于 Linux 的 Windows 子系统 (WSL) 结合使用。 这意味着可以直接在本地 WSL 安装上生成和调试。 不再需要添加远程连接或配置 SSH。 可在此处找到有关如何安装 WSL的详细信息。若要配置 WSL 安装使其可与 Visual Studio 结合使用则需安装以下工具gcc或clang、gdb、make、ninja-build仅适用于使用 Visual Studio 2019 版本 16.6 或更高版本的 CMake 项目、rsync和zip。 你可以使用此命令将它们安装在使用apt的发行版上这还将安装 g 编译器。以 WSL 为目标时无需添加远程连接或配置 SSH 即可进行生成和调试。使用 Visual Studio for Intellisense 支持自动同步 Linux 标头需要 zip 和 rsync 。 仅 CMake 项目需要 ninja-build 。 如果所需应用程序尚不存在则可以使用以下命令进行安装Bashsudo apt-get install g gdb make ninja-build rsync zip上述apt命令会安装C 编译器gdbCMakersynczip基础生成系统生成器此时就连接到 WSL 上的Ubuntu 系统了。3、创建 Linux CMake 项目1新建 Linux 项目若要在 Visual Studio 2019 中创建新的 Linux CMake 项目请执行以下操作《1》在 Visual Studio 中选择“文件”“新建项目”或按 Ctrl Shift N。《2》将“语言”设置为“C”然后搜索“CMake”。 然后选择“下一步”。 输入“名称”和“位置”然后选择“创建”。或者可以在 Visual Studio 2019 中打开自己的 CMake 项目。 下面的部分说明如何执行此操作。Visual Studio 创建一个最小的 CMakeLists.txt 文件其中只包含可执行文件的名称和所需的最小 CMake 版本。 可以按自己喜欢的方式手动编辑此文件Visual Studio 永远不会覆盖所做的更改。《3》启用 Visual Studio 的 CMake 预设集成。启用 Visual Studio 的 CMake 预设集成。 选择“工具”“选项”“CMake”“常规”。 选择“首选使用 CMake 预设进行配置、构建和测试”然后选择“确定”。 相反你可能已在项目的根目录下添加了一个CMakePresets.json文件。 有关详细信息请参阅启用 CMake 预设集成。《4》若要激活集成在主菜单中选择“文件”“关闭文件夹”。 这会显示“开始”页面。 在“打开最近使用的文件”下选择刚关闭的文件夹来重新打开它。《5》Visual Studio 主菜单栏上有 3 个下拉列表。 使用左侧的下拉列表可选择活动目标系统。 将在此系统上调用 CMake 来配置和生成项目。 Visual Studio 使用wsl -l -v查询 WSL 安装项。 在下图中显示了 WSL2: Ubuntu-20.04且已选中它作为目标系统。《6》使用中间的下拉列表可选择活动配置预设。 配置预设会指示 Visual Studio 如何调用 CMake 和生成基础生成系统。 在步骤 7 中活动配置预设是 Visual Studio 创建的 linux-default 预设。 若要创建自定义配置预设请选择“管理配置...”有关配置预设的详细信息请参阅选择配置预设和编辑预设。《7》使用右侧下拉列表可选择活动生成预设。 生成预设会指示 Visual Studio 如何调用生成。 在步骤 5 的插图中活动生成预设是 Visual Studio 创建的默认生成预设。 若要详细了解生成预设请参阅选择生成预设。《8》在 WSL 2 上配置项目。 如果项目生成没有自动启动请使用“项目”“配置 项目名称”手动调用配置《9》如果未在 WSL 2 发行版上安装受支持的 CMake 版本Visual Studio 将在主菜单功能区下提示部署最新版本的 CMake。 选择“是”将 CMake 二进制文件部署到 WSL 2 发行版。会在后面特意说明《10》确认已完成配置步骤并且你在“CMake”窗格下的“输出”窗口中看到“CMake 生成已完成”消息。 生成文件会写入 WSL 2 发行版的文件系统中的某个目录。《11》选择活动调试目标。 调试下拉菜单列出了项目可使用的所有 CMake 目标。《12》在解决方案资源管理器中展开项目子文件夹。 在CMakeProject.cpp文件中在main()中设置断点。 还可在解决方案资源管理器中选择“视图选取器”按钮导航到 CMake 目标视图如以下屏幕截图中高亮所示《13》选择“调试”“开始”或者按 F5。 项目会执行生成操作可执行文件将在 WSL 2 发行版上启动而 Visual Studio 将在断点处停止执行。 Linux 控制台窗口会显示程序的输出在本例中为Hello CMake.以下示例显示了一个简单的 CMakeLists.txt 文件和 .cpp 文件、.h 文件# CMakeList.txt: CMakeUnix1 的 CMake 项目在此处包括源代码并定义 # 项目特定的逻辑。 # cmake_minimum_required (VERSION 3.8) #project (hello-cmake) # 将源代码添加到此项目的可执行文件。 add_executable (CMakeUnix1 CMakeUnix1.cpp CMakeUnix1.h) # TODO: 如有需要请添加测试并安装目标。// CMakeUnix1.cpp: 定义应用程序的入口点。 // #include CMakeUnix1.h using namespace std; int main() { cout Hello CMake. endl; return 0; }// CMakeUnix1.h: 标准系统包含文件的包含文件 // 或项目特定的包含文件。 #pragma once #include iostream // TODO: 在此处引用程序需要的其他标头。CMakePresets_schema.json{ version: 2, configurePresets: [ { name: linux-default, displayName: Linux Debug, description: 面向适用于 Linux 的 Windows 子系统(WSL)或远程 Linux 系统。, generator: Ninja, binaryDir: ${sourceDir}/out/build/${presetName}, cacheVariables: { CMAKE_BUILD_TYPE: Debug, CMAKE_INSTALL_PREFIX: ${sourceDir}/out/install/${presetName} }, vendor: { microsoft.com/VisualStudioSettings/CMake/1.0: { hostOS: [ Linux ] }, microsoft.com/VisualStudioRemoteSettings/CMake/1.0: { sourceDir: $env{HOME}/.vs/$ms{projectDirName} } } }, { name: windows-default, displayName: Windows x64 Debug, description: 面向具有 Visual Studio 开发环境的 Windows。, generator: Ninja, binaryDir: ${sourceDir}/out/build/${presetName}, architecture: { value: x64, strategy: external }, cacheVariables: { CMAKE_BUILD_TYPE: Debug, CMAKE_INSTALL_PREFIX: ${sourceDir}/out/install/${presetName} }, vendor: { microsoft.com/VisualStudioSettings/CMake/1.0: { hostOS: [ Windows ] } } } ] }# CMakeList.txt: 顶层 CMake 项目文件在此处执行全局配置 # 并包含子项目。 # cmake_minimum_required (VERSION 3.8) project (CMakeUnix1) # 包含子项目。 add_subdirectory (CMakeUnix1)2或 打开 CMake 项目文件夹打开包含现有 CMake 项目的文件夹时Visual Studio 会使用 CMake 缓存中的变量来自动配置 IntelliSense 和生成。 本地配置和调试设置将存储在 JSON 文件中。 可以选择与使用 Visual Studio 的其他人共享这些文件。Visual Studio 不会修改 CMakeLists.txt 文件。 这使得处理同一项目的其他人员可以继续使用其现有工具。 在保存对 CMakeLists.txt 的编辑或在某些情况下保存对 CMakeSettings.json 的编辑时Visual Studio 会重新生成缓存。 如果使用的是“现有缓存”配置则 Visual Studio 不会修改缓存。有关 Visual Studio 中的 CMake 支持的常规信息请参阅 Visual Studio 中的 CMake 项目。 在继续之前请先阅读相关内容。首先在主菜单中选择文件打开文件夹或在开发人员命令提示窗口中键入devenv.exe foldername。 打开的文件夹中应该有一个 CMakeLists.txt 文件以及你的源代码。4、在 Visual Studio 中将 Microsoft 的 CMake 包部署到适用于 Linux 的 Windows 子系统 (WSL)在 Visual Studio 中将 Microsoft 的 CMake 包部署到适用于 Linux 的 Windows 子系统 (WSL) 是一个自动化的过程通常由 Visual Studio 在检测到需要时自动处理。以下是详细步骤和相关信息。1部署过程概述当您在 Visual Studio 中配置一个 CMake 项目并以 WSL 为目标系统时如果 WSL 发行版上未安装支持的 CMake 版本Visual Studio 会自动提示您部署最新版本的 CMake 二进制文件。这个过程包括将 CMake 安装到 WSL 环境中以便后续的生成和调试操作能够顺利进行。2具体步骤打开 CMake 项目在 Visual Studio 中选择“文件”“打开”“文件夹”然后导航到包含CMakeLists.txt文件的项目根目录。选择 WSL 作为目标系统在 Visual Studio 主工具栏的“目标系统”下拉列表中选择您的 WSL 发行版例如 Ubuntu。Visual Studio 会自动检测已安装的 WSL 系统。自动部署提示如果 WSL 上未安装支持的 CMake 版本Visual Studio 会在“输出”窗口中显示提示消息例如“检测到 CMake 缓存过期。正在自动配置项目...” 或直接提示部署 CMake。确认部署在提示出现时选择“是”或“部署”选项Visual Studio 会自动将最新版本的 CMake 二进制文件部署到 WSL 发行版。部署完成后您会在“输出”窗口中看到“CMake 生成完成”的消息。验证安装部署成功后您可以打开 WSL 终端运行cmake --version来验证 CMake 是否已正确安装。3注意事项WSL 版本确保使用 WSL 2因为 WSL 1 可能不支持某些功能。您可以通过 wsl -l -v 命令检查 WSL 安装。手动安装备用如果自动部署失败您可以手动在 WSL 发行版中安装 CMake。例如在基于 Debian/Ubuntu 的系统上使用以下命令Bashsudo apt update sudo apt install cmakeVisual Studio 配置为了启用 CMake 预设集成建议在“工具”“选项”“CMake”“常规”中选中“使用 CMake 预设进行配置、构建和测试”。然后关闭并重新打开项目文件夹以激活集成。通过以上步骤Visual Studio 会无缝处理 CMake 的部署使您能够专注于开发。如果遇到问题请检查 WSL 连接和 Visual Studio 的更新状态。请参阅 1、下载、安装和设置 Linux 工作负载-CSDN博客2、在 Windows 上安装 Linux-CSDN博客3、使用 Visual Studio 连接到目标 Linux 系统 | Microsoft Learn4、Visual Studio 中的 CMake 项目 | Microsoft Learn5、演练使用适用于 Linux 的 Microsoft Windows 子系统 2 (WSL 2) 和 Visual Studio 2022 生成和调试 C | Microsoft LearnCMakeSettings.json 模板目录C:\Users\mt\Documents\VisualStudio\CMakeSettingsTemplates【有点碎片化还没整理完……】