cmake 设置默认编译器CMAKE_CXX_COMPILER造成死循环的问题

为了以指定版本的编译器进行编译,我们可以通过修改 cmake 默认编译器 (CMAKE_CXX_COMPILER)。然而,如果在多项目的 add_subdirectory 包含其他项目,可能造成死循环的问题。

处理这个问题,需要我们在所有项目的顶层设置,即在最顶层的项目 CMakeLists.txtproject 之前设置

1
2
3
4
5
6
7
8
9
# top setting ===========================================================----==
cmake_minimum_required(VERSION 3.15)
SET(CMAKE_C_COMPILER /usr/bin/gcc)
SET(CMAKE_CXX_COMPILER /usr/bin/g++)
set(CMAKE_CXX_STANDARD 17 CACHE STRING "v")
## =============================================================================
## need to be after top setting
project(snail CXX)
## =============================================================================

主要参考文章:CMakeLists.txt 修改默认编译器导致死循环的问题解决

william 支付宝支付宝
william 微信微信
0%