visual stdio 使用CMake

基础知识

工具>选项>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

posted @ 2025-03-31 01:32  乘舟凉  阅读(158)  评论(0)    收藏  举报