visual stdio 使用CMake

news/2025/4/1 23:55:54/文章来源:https://www.cnblogs.com/czlnb/p/18801425

基础知识

工具>选项>CMake>常规 选中从不使用CMake预设
167ac28426d20aff87cbac12794453e5

重启 visual stdio,点击打开本地文件夹(F),打开CMakeList.txt根目录
7ae7d09c87191b7af557b3135fbe4aa9
此时会在CMake根目录自动生成CMakeSettings.json文件,使用visual stdio文件打开CMakeSettings.json
d89029ec35c78899d4016be8d2512b69
如果打开时,是json文件时,可以右键CMakeSettings.json,选择打开方式(N),再出现的选择框点击CMake 设置编辑器(默认值)

7a7431fd38c1393b8431b17bb202388a

CMakeSettings.json文件规定了visual studio如何传递cmake参数

修改CMakeSettings.jsonCMakeLists.txt 保存会自动执行CMake命令,查看输出窗口CMake输出来源,可以查看具体执行的CMake命令
7602c9a8feef579f5beb12726e7957ef

点击 生成(B)>全部生成 即可进行build
0eb8b6f3880b712867591b3982725844

CMakeSettings.json字段分析

	{"configurations": [{"name": "x64-Debug","generator": "Ninja","configurationType": "Debug","inheritEnvironments": [ "clang_cl_x64" ],"buildRoot": "${projectDir}\\out\\build\\${name}","installRoot": "${projectDir}\\out\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "","ctestCommandArgs": "","intelliSenseMode": "windows-clang-x64"},{"name": "x64-Clang-Release","generator": "Ninja","configurationType": "RelWithDebInfo","buildRoot": "${projectDir}\\out\\build\\${name}","installRoot": "${projectDir}\\out\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "","ctestCommandArgs": "","inheritEnvironments": [ "clang_cl_x64_x64" ]}]
}
  • configurations
    configurations字段是一个列表,可以增加不同的配置,比如DebugRelease,在visual studio中可以选择不同的配置进行生成
    cbd4de1445bb16e6652b6997511b4ad7

  • name
    f86aa059d5b55dde9faf1e46733d98d9

  • generator
    2de33c0547a905d36fe1b65d99fb5f9e

  • configurationType
    608a9bee3734bfe8d19f4bc4de066c03
    决定生成Debug还是Release

  • inheritEnvironments
    726e4b02f574ebaccd94999070620687
    决定使用什么编译器

  • buildRoot
    00df7465198f752386ee7372f5c90cf4
    项目生成路径

  • installRoot
    26a3c9848a48a94a5096648350a728f8
    二进制文件的生成路径

  • cmakeCommandArgs
    0389b817acbe3fa961f9f0ba86babf1b
    在CMake生成项目时,要传递的参数

  • buildCommandArgs
    2356b9ddc98ced3f73fb2672d9610ed6

  • intelliSenseMode
    cab7a15969724b7f785de146ee443970
    告诉vs需要使用什么类型的智能提示,要选择正确编译器的,不然代码提示会错误,比如头文件找不到,虽然不影响编译

使用clang编译器

  • 安装clang编译器
    打开visual Studio Installer,选择修改组件>单个组件>搜索clang > 安装搜索结果即可
    4a9337379e0858973cababfb9f7e2dac

  • inheritEnvironments
    58bb0aed64ddc88e1dd498c4a4606064

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908435.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql InnoDB的事务

一、事务的概念 一组数据库操作要么全部成功,要么全部失败,目的是为了保证数据的最终一致性 二、事务的四大特性(ACID)原子性(Actomicity):当前事务的操作要么成功,要么失败,原子性是由undo log日志来保证 一致性(Consistency):使用事务的最终目的,由业务代码正确…

如何使用 OpenAI Agents SDK 构建 MCP

1.概述 OpenAI Agents SDK 现已支持 MCP(模型上下文协议),这是 AI 互操作性的重大变革。这使开发人员能够高效地将 AI 模型连接到外部工具和数据源。本篇博客,笔者将指导使用 OpenAI Agents SDK 构建 MCP 服务器,以增强你的 AI 应用程序。 2.内容 2.1 什么是 MCP MCP 服务…

C语言打卡学习第11天(2025.3.30)(补发)

冒泡排序的一个学习。还了解了一个快速排序的“挖坑法”,能省变量位置,但挺难写的,挺有意思:把数组第一个元素放一个空作为一个标准值,第一个位置就空了出来,然后将第一个“暂时标准值”从最后一个数开始比较,后面小就放到第一个“坑”,然后“坑”又到后面了,再从前面…

C语言打卡学习第10天(2025.3.29)(补发)

指针和数组的学习,数组现在能做到基本掌握和简单运用,指针有些难,还是得练

FastAPI中的Pydantic密码验证机制与实现

title: FastAPI中的Pydantic密码验证机制与实现 date: 2025/03/31 00:04:51 updated: 2025/03/31 00:04:51 author: cmdragon excerpt: FastAPI 中通过 Pydantic 模型实现密码验证,采用分层机制确保高效与灵活扩展。验证流程包括基础类型检查、长度验证、复杂度验证和泄露检…

PicGo+Github图床配置

PicGo+Github图床配置 参考 PicGo指南 PicGo+Github图床配置配置 Github 图床 创建 Github 仓库登录 Github,新建一个公开(Public)或私有(Private)仓库 (我个人选择新建公开仓库) 用于存储图片,仓库名任意取,例如 image-host​,进入新建的仓库,点击 Create a codespac…

独立按键控制 LCD1602 显示不同的谚语

前言 今天我又学到了一句话 “好的开始是成功的一半” 英语就是 “Well Begun Is Half Done” 所以希望能够通过独立按键,来控制LCD1602显示不同的谚语 演示函数数组的使用 错误用法 void (*sayings)(void)[MAX_SAYING] = {attitude,well_begun};报错正确用法 void (*sayings[…

OpenEuler RISC-V 上跑bitcoin(实战版)

不久前刚在OpenEuler 24.09 RISC-V上部署了 bitcoin,不过还没跑起来,这次我打算在这个环境下面运行一些应用服务,体验一下 OERV 的开发感觉。编译出来的 bitcoin 主要有几个命令,bitcoin-cli、bitcoind、bitcoin-util、bitcoin-wallet、bitcoin-tx和test_bitcoin。bitcoind…

javawebDay3-Maven框架

1.添加依赖 eg<dependencies><dependency><groupId></groupId><artifactId></artifactId></dependency></dependencies>从外部导入jar包等无需手动添加依赖 2.集成度高,eclipse和intellIDEA都能使用,在不同的操作系统也可以使…

Five Hundred Miles

一百英里 是自由,是初出茅庐的憧憬。 二百英里 是快乐,是逃离故里的喜悦。 三百英里 是忧伤,是萦绕心间的挂念。 四百英里 是思恋,是莺歌燕舞的家乡。 五百英里 是乡愁,是一去不返的凄凉。