cmake的版本会不会影响编译结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmake的版本会不会影响编译结果相关的知识,希望对你有一定的参考价值。
参考技术A 会。根据查询相关资料显示,cmake的版本包括(cuda、gcc、tensorflow的版本),这几个版本稍有偏差,就会造成编译运行失败影响结果。CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。Ubuntu/Linux 升级 CMake 版本
Ubuntu/Linux 升级 CMake 版本
背景
在 Ubuntu 18.04 系统上默认的 CMake 版本为 3.10.2,当需要进行一些比较新的项目的编译时,比如说 iceoryx 的交叉编译,会遇到 CMake 版本不支持问题。类似下面的打印:
CMake Error at CMakeLists.txt:17 (cmake_minimum_required):
CMake 3.16 or higher is required. You are running version 3.10.2
这时我们需要升级系统中的 CMake,从 3.10.2 升级到 3.16+ 版本。
解决方案
在 CMake 网站的 Download 页面 Alternative Binary Releases 列表中提供了 Kitware’s Ubuntu packages 可替换的 APT 仓库 https://apt.kitware.com/。在 https://apt.kitware.com/ 网址中是 Kitware 维护的 CMake 可替换版本,根据网站提示选择合适的系统进行更新。
以下步骤可参考 apt.kitware.com 进行操作:
-
如果您使用的是最小 Ubuntu 镜像或 Docker 镜像,则可能需要安装以下软件包:
sudo apt-get update sudo apt-get install -y gpg wget
-
获取 Kitware 的签名密钥副本:
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
-
将存储库添加到源列表并更新。
Ubuntu Jammy Jellyfish (22.04):
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt-get update
Ubuntu Focal Fossa (20.04):
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt-get update
Ubuntu Bionic Beaver (18.04):
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt-get update
-
安装
kitware-archive-keyring
软件包,以确保您的钥匙环在我们轮循钥匙时保持最新:sudo rm /usr/share/keyrings/kitware-archive-keyring.gpg sudo apt-get install kitware-archive-keyring
-
作为可选步骤,如果您想订阅除生产版本之外的候选版本,可以将我们的候选版本存储库添加到您的源中。
Ubuntu Jammy Jellyfish (22.04):
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy-rc main' | sudo tee -a /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt-get update
Ubuntu Focal Fossa (20.04):
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal-rc main' | sudo tee -a /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt-get update
Ubuntu Bionic Beaver (18.04):
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic-rc main' | sudo tee -a /etc/apt/sources.list.d/kitware.list >/dev/null sudo apt-get update
请注意,如果您添加了候选版本存储库,您仍然需要添加主存储库,因为候选版本存储存储库本身不提供生产版本。
-
现在,您可以从我们的 APT 存储库安装任何软件包。例如,尝试安装 cmake 包:
sudo apt install -y cmake
提示:使用 Synaptic 工具查看待更新的 cmake 版本,关于 Synaptic 的使用可参考「Ubuntu 软件包管理利器 - 新立得 (Synaptic)」。
版本验证
安装 CMake 包之后,可以通过 cmake --version
命令查看版本信息。
$ cmake --version
cmake version 3.25.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
欢迎关注我的公众号:飞翔的小黄鸭
也许会发现不一样的风景
△ \\triangle △ 交叉编译 iceoryx
以上是关于cmake的版本会不会影响编译结果的主要内容,如果未能解决你的问题,请参考以下文章
使用特定链接器进行CMake交叉编译不会将参数传递给armlink