You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置CMake使用Ninja替代Make?附VSCode扩展生成的配置示例

如何配置CMake使用Ninja替代Make?附VSCode扩展生成的配置示例

我最近在VSCode里挖到个实用的小扩展——「CPP CMake Ninja Project Generator」,它自动生成的CMakeLists.txt直接帮我搞定了用Ninja替代Make的配置,正好把这个配置实例和解析分享给你!

先给你看看这个扩展生成的配置代码(注:原配置末尾存在轻微截断,以下为现有完整可解析内容):

cmake_minimum_required(VERSION 3.20)
project(n VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_GENERATOR "Ninja" CACHE INTERNAL "" FORCE)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(APPLE)
    set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
endif()

# MacPorts /opt/local if needed
include_directories("/opt/local/include")

接下来我给你逐行拆解下关键配置点,重点讲怎么让CMake认准Ninja:

  • 强制指定Ninja为生成器:
    这行是核心中的核心:set(CMAKE_GENERATOR "Ninja" CACHE INTERNAL "" FORCE)。它直接把CMake的生成器强制设置为Ninja,彻底替代默认的Make。CACHE INTERNAL "" FORCE是为了确保这个设置不会被外部参数覆盖,稳定性拉满。

  • 基础项目与标准配置:
    开头的cmake_minimum_required(VERSION 3.20)和project(n VERSION 1.0.0 LANGUAGES CXX)是常规操作,指定CMake最低版本、项目名、版本和支持的语言,没啥花活,但却是项目构建的基础。
    后面的set(CMAKE_CXX_STANDARD 20)和CMAKE_CXX_STANDARD_REQUIRED ON是锁定C++20标准,确保编译器必须支持该版本,避免后续出现版本兼容问题。

  • 苹果系统适配:
    这段if(APPLE)的判断是给Mac用户量身定做的,强制指定用clang++作为C++编译器,毕竟Mac环境下clang的原生适配性是最好的。

  • 头文件目录适配:
    最后的include_directories("/opt/local/include")是为了兼容MacPorts安装的第三方库,如果你用MacPorts装过依赖包,加这行能让CMake顺利找到对应的头文件。

最后补个小提醒:要确保你的系统里已经安装了Ninja工具哦!如果没装,先通过包管理器装上(比如Ubuntu用sudo apt install ninja-build,Mac用brew install ninja),不然CMake会因找不到生成器而报错。

备注:内容来源于stack exchange,提问作者user11566470

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 16:58:10