debian安装cmake

文章讲述了在Debian10系统中,因CMake版本过低导致无法正常编译ZLIB包的问题。通过升级CMake到3.21.0-rc1并引入新的FindZLIB.cmake中的select_library_configurations功能,成功解决了ZLIB库查找问题。
摘要由CSDN通过智能技术生成

debian 10自带的版本是3.13.4,一般情况下够用了。今天不知道啥问题,发现无法正常编译,ZLIB 包找不到。

网上转了一圈,没找到方法。debian使用的ZLIB包 zlib1g zlib1g-dev 都安装过

sudo apt install zlib1g
sudo apt install zlib1g-dev
看到有个帖子用了3.16版本能通过编译,赶脚升级CMake版本。

一、测试ZLib的CMake信息
主要问题是c代码会出现这个问题,c++版本不会有这个问题。

CMakeLists.txt 的测试内容

cmake_minimum_required(VERSION 3.5)
project(test C)

find_package(ZLIB REQUIRED)
执行编辑命令报ZLIB 包找不到

[cmake] CMake Error at /usr/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
[cmake] Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version “1.2.11”)
[cmake] Call Stack (most recent call first):
[cmake] /usr/share/cmake-3.13/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
[cmake] /usr/share/cmake-3.13/Modules/FindZLIB.cmake:114 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
[cmake] CMakeLists.txt:4 (find_package)
[cmake]
[cmake]
[cmake] Configuring incomplete, errors occurred!
[cmake] See also “/home/iucalc/expsvr/build/CMakeFiles/CMakeOutput.log”.
[cmake] See also “/home/iucalc/expsvr/build/CMakeFiles/CMakeError.log”.
二、安装CMake
2021-6-28号最新的版本是 ver 3.21.0, 直接下载cmake-3.21.0-rc1.tar.gz源码包编译。

注:cmake默认使用 ssl的库
sudo apt-get install libssl-dev

$ wget https://github.com/Kitware/CMake/releases/download/v3.21.0-rc1/cmake-3.21.0-rc1.tar.gz
$ tar -zxvf cmake-3.21.0-rc1.tar.gz
$ cd cmake-3.21.0-rc1
$ ./bootstrap
$ make
$ sudo make install
$ cmake --version

cmake version 3.21.0-rc1

CMake suite maintained and supported by Kitware (kitware.com/cmake).
官网: https://cmake.org/download/

三、升级完成,问题完美解决
新版本的确实已经解决了ZLIB在c工程下,找不到Zlib的问题。

新版本的FindZLIB.cmake里有个 select_library_configurations,


include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
select_library_configurations(ZLIB)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

davis_yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值