【cpp/c++ summary 工具】Visual Studio 2022 切换编译器(Clang、MinGW Minimalist GNU for Windows)

  • 编译项目时出现了:Compiler ‘MSVC’ is not supported 的CMake Error
  • 某些项目可能不支持 MSVC,或专为 GCC、Clang 等编译器设计(比如项目中用到了__attribute__,且并非所有的编译器都支持 bfloat16 类型__bf16)
  • 报错的CMAKE语句如下:
#
# Copyright Soramitsu Co., 2021-2023
# Copyright Quadrivium Co., 2023
# All Rights Reserved
# SPDX-License-Identifier: Apache-2.0
#

if (CMAKE_CXX_COMPILER_ID MATCHES "^(AppleClang|Clang)$")
    print("Using Clang")
    include(${CMAKE_CURRENT_LIST_DIR}/compiler/clang.cmake)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
    print("Using GCC")
    include(${CMAKE_CURRENT_LIST_DIR}/compiler/gcc.cmake)
else()
    fatal_error("Compiler '${CMAKE_CXX_COMPILER_ID}' is not supported")
endif()
  • Clang、MinGW 和 MSVC 是三种常用的编译器或编译工具链,它们在支持的平台、编译目标和功能上各有不同。下面是它们之间的主要区别:
特性 Clang MinGW MSVC
平台 macOS、Linux、Windows Windows Windows
编译标准 支持最新的 C 和 C++ 标准 基于 GCC,支持 C/C++ 支持最新的 C/C++ 标准,但相对较慢
工具链 基于 LLVM,可与 MSVC 集成 GNU 工具链(基于 GCC/GNU Compiler Collection) 完全微软生态(专有工具链)
库支持 依赖 LLVM 库,跨平台支持更好 依赖开源库,通常无需微软库 依赖微软运行时库
典型应用 跨平台开发,尤其是 macOS 和 Linux 在 Windows 上使用 GNU 工具链 Windows 原生开发,Visual Studio 环境
  • 从CMake 代码片段可以看出,该项目当前仅支持 Clang 和 GCC 编译器,下面的部分进行了 Visual Studio 2022 切换编译器。

在这里插入图片描述

  • 需要改变CMake的工具集配置:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值