conan和cmake编译器版本不匹配问题解决

执行环境:ubuntu

1 问题现象

conan要求的编译器版本和cmake检测到的当前的编译器版本不一致,导致编译失败。

  • Compiler version specified in your conan profile: 10
  • Compiler version detected in CMake: 9.4
CMake Error at /home/test/out/x64_Release/build/conanbuildinfo.cmake:1742 (message):
  Detected a mismatch for the compiler version between your conan profile
  settings and CMake:

  Compiler version specified in your conan profile: 10

  Compiler version detected in CMake: 9.4

  Please check your conan profile settings (conan profile show
  [default|your_profile_name])

  P.S.  You may set CONAN_DISABLE_CHECK_COMPILER CMake variable in order to
  disable this check.

2 解决方法

2.1 在CMakeLists.txt禁止编译器检查

在源代码顶层的CMakeLists.txt里添加禁止编译器检查的设置,这样可以避免由于conan要求的编译器版本和cmake检测到的版本不一致而导致失败。但是这种方式是一种不提倡的方式。

2.1.1 修改方式

set(CONAN_DISABLE_CHECK_COMPILER ON)

2.2 探查问题出现的根本原因

既然cmake检测到的编译器版本和conan要求的不一致,那说明当前系统的配置还是存在一些问题。
在检查gcc和g++的时候发现当前系统存在gcc-9以及g+±9,而这两个编译器对应的版本整好为9.4。这说明当前的gcc的配置可能还是指向了低版本的gcc-9/g+±9

2.2.1 安装升级gcc

  • sudo apt install gcc-10安装conan要求的gcc-10版本的编译器
  • sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10当系统需要使用gcc时,默认选择gcc-10版本,gcc指向当前系统已经安装的gcc-10
sudo apt update
sudo apt install gcc-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10

2.2.2 安装升级g++

  • sudo apt install g++-10安装conan要求的g+±10版本的编译器
  • sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10当系统需要使用g++时,默认选择g+±10版本,g++指向当前系统已经安装的g+±10
sudo apt install g++-10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10

当按照以上处理执行完成后,可以通过gcc --version查看当前的gcc信息。
若需要切换gcc版本,则可以通过2.2.1以及2.2.2的方法去处理。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值