| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> VisualStudio: 在CMake工程中使用C++模块 -> 正文阅读 |
|
[开发工具]VisualStudio: 在CMake工程中使用C++模块 |
自从我们宣布微软C++编译器和Visual Studio开始支持C++模块以来,我们已经看到了开发者社区的热烈反响。从那个时候开始,就已经有人问什么时候可以支持CMake工程。 C++模块是C++20中的一项新特性。它可以帮助你划分代码,加快编译时间,并且可以和现有代码一起无缝地结合。如果你对C++模块感兴趣的话,可以参考Visual Studio中的C++模块之旅这篇文章。它探讨了如何以及何时使用C++模块,以及Visual Studio如何帮助你编写C++模块代码。 在CMake工程中使用C++模块虽然 CMake 对 Visual Studio 中模块的支持仍处于早期试验阶段,但使用它很简单。 你不需要在你的 CMake 工程中做任何特别的事情。 只需要确保你已启用 C++20 语言标准。 从这个预览版开始,我们的 CMake 工程模板将为你完成这项工作,但如果你正在使用现有项目,则需要将其添加到你的 CMakeLists.txt 中,例如: 注意:启用 C++20 需要 CMake 3.12 或更高版本。 Visual Studio 附带最新版本的 CMake,但如果你跨操作系统使用此项目或需要使用旧版本的 CMake,则可能需要考虑这一点。 你还需要确保将 Visual Studio 生成器与 CMake 一起使用。 我们计划将来支持其他的代码生成器,例如 Ninja,但目前尚不可用。 Ninja 是在 Visual Studio 中处理 CMake 项目时的默认生成器,因此你需要修改项目的 CMakePresets.json 或 CMakeSettings.json 文件来更改这一设置。 CMake Presets:如果你的工程使用 CMake Presets,请在 CMakePresets.json 中找到“windows-base”配置预设。 它将具有最有可能设置为“Ninja”的“generator”属性。 将其更新为下图中的设定: CMake Settings:如果你的工程使用 CMake 设置,则可以打开 CMakeSettings.json 编辑器并将生成器设置(在高级下)更改为“Visual Studio 17 2022:” 你需要为每个工程的配置执行此操作。 至此,选择了 Visual Studio 生成器并为你的编译目标启用了 C++20 语言标准,你就可以在工程中使用C++模块了。 在 CMake 工程中创建C++模块要将C++模块添加到你的工程中,只需右键单击任何文件夹并选择“添加新项目:” 并在“Visual C++”类别中选择“C++ Module Interface Unit (.ixx)”模板: 如果你使用的是 Targets View,那就更容易了。 只需在任何目标的上下文菜单中单击“添加 -> 新模块…”: 导出和使用C++模块创建模块接口 (.ixx) 文件后,你就可以导出函数、类和结构。 下面的示例定义了一个名为 Printers 的简单模块并导出一个结构: 定义了模块之后,其他源文件和模块接口就可以使用 import 关键字来使用它。 可以导入在当前目标或其任何导入中声明的任何模块。 例如,下面的“PrintVector.cpp”使用了我们上面定义的打印机模块: 你可以用 C++ 模块做很多事情。 要了解更多信息,我建议阅读 Visual Studio 中的 C++ 模块之旅,其中详细介绍了如何使用模块。 例如,可以将模块接口从它们的实现中分离出来。 总结老乡,别走。 最后Microsoft Visual C++团队的博客是我非常喜欢的博客之一,里面有很多关于Visual C++的知识和最新开发进展。大浪淘沙,如果你对Visual C++这门古老的技术还是那么感兴趣,则可以经常去他们那(或者我这)逛逛。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:22:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |