当前位置: 首页 > news >正文

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

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

  • 1 问题现象
  • 2 解决方法
    • 2.1 在CMakeLists.txt禁止编译器检查
      • 2.1.1 修改方式
    • 2.2 探查问题出现的根本原因
      • 2.2.1 安装升级gcc
      • 2.2.2 安装升级g++

执行环境: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 profilesettings and CMake:Compiler version specified in your conan profile: 10Compiler version detected in CMake: 9.4Please 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 todisable 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的方法去处理。

http://www.lryc.cn/news/221759.html

相关文章:

  • float单精度浮点数如何在计算机中存储
  • 机器视觉在虚拟现实与增强现实中的作用
  • 红黑数原理及存在原因
  • Ansible入门—安装部署及各个模块应用案例(超详细)
  • Spring Boot 3系列之-启动类详解
  • muduo源码剖析之Timer定时器
  • CocosCreator:背景滚动 、背景循环滚动
  • 中远麒麟堡垒机SQL注入漏洞复现
  • ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群
  • Ansible概述以及模块
  • Cannot run program “D:\c\IntelliJ IDEA 2021.1.3\jbr\bin\java.exe“
  • 案例-注册页面(css)
  • Ansible--playbook 剧本
  • Vue3.0路由拦截
  • EtherCAT转EtherNET/IP协议网关控制EtherCAT伺服驱动器的方法
  • 钉钉内嵌H5遇到的一些问题
  • LeetCode 热题100——链表专题(二)
  • 【Rust日报】2023-11-06 ESP上使用 Rust实现 SNTP协议
  • LibreOJ - 2874 历史研究 (回滚莫队)
  • 人工智能-卷积神经网络之多输入多输出通道
  • Open3D(C++) Umeyama算法求两个点云的变换矩阵
  • 【C++】从入门到精通第二弹——类的构造与析构函数
  • C#8.0本质论第十一章--异常处理
  • FPGA高端项目:图像缩放+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持
  • ansible安装和常见模块
  • 【Python基础】 Python设计模式之单例模式介绍
  • 算法小白的心得笔记:关于Nan
  • Photoshop 2023 v24.7
  • 进程间通信(IPC)-管道、消息队列、信号量、共享存储、socket
  • 「Verilog学习笔记」使用generate…for语句简化代码