安装cmake3.18.2,执行sudo ./bootstrap,出现-- Could NOT find OpenSSL, ...的问题

在尝试安装CMake3.18.2版本时,执行sudo./bootstrap命令后遇到找不到OpenSSL的问题。该问题源于系统中缺失必要的ssl库,通过使用sudo apt-get install libssl-dev命令进行安装,成功解决了CMake配置过程中关于OpenSSL的依赖问题。

安装cmake3.18.2,执行sudo ./bootstrap,出现-- Could NOT find OpenSSL, ...的问题

问题描述

ms@ubuntu:~/Downloads/cmake-3.18.2$ sudo ./bootstrap 
---------------------------------------------
CMake 3.18.2, Copyright 2000-2020 Kitware, Inc. and Contributors
Found GNU toolchain
C compiler on this system is: gcc   
C++ compiler on this system is: g++  -std=gnu++17  
Makefile processor on this system is: make
g++ has setenv
g++ has unsetenv
g++ does not have environ in stdlib.h
g++ has stl wstring
g++ has <ext/stdio_filebuf.h>
---------------------------------------------
make: 'cmake' is up to date.
loading initial cache file /home/ms/Downloads/cmake-3.18.2/Bootstrap.cmk/InitialCacheFlags.cmake
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) 
CMake Error at Utilities/cmcurl/CMakeLists.txt:485 (message):
  Could not find OpenSSL.  Install an OpenSSL development package or
  configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.


-- Configuring incomplete, errors occurred!
See also "/home/ms/Downloads/cmake-3.18.2/CMakeFiles/CMakeOutput.log".
See also "/home/ms/Downloads/cmake-3.18.2/CMakeFiles/CMakeError.log".
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake
---------------------------------------------

问题解决

根据问题描述,缺少ssl库,安装即可

sudo apt-get install libssl-dev

引用

[1] https://www.jianshu.com/p/55249a0272ad

<think>首先,用户的问题是在CentOS 7系统上安装CMake 3.18.2版本的方法。我需要基于提供的引用信息来回答。 回顾引用: - 引用[1]: 描述了手动安装CMake的步骤: 1. 获取CMake源码:`wget https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz` 2. 解压:`tar -zxvf cmake-3.18.2.tar.gz` 3. 切换到目录:`cd cmake-3.18.2` 4. 构建并编译:`./bootstrap` 然后 `make` 5. 安装:`sudo make install` 6. 提到如果遇到找不到OpenSSL问题安装OpenSSL:`yum -y install ncurses-devel` 和 `yum install openssl-devel` (需要root权限) - 引用[2]: 提到选择Linux源代码或二进制包,如`cmake-3.18.2.tar.gz`或`cmake-3.18.2-Linux-x86_64.tar.gz` - 引用[3]: 简要说明安装步骤:下载源码,安装openssl环境:`yum -y install openssl-devel` - 引用[4]: 提供了类似手动安装步骤: 1. 解压:`tar zxvf cmake-3.21.3.tar.gz` 2. 进入目录:`cd cmake-3.21.3` 3. 构建:`./bootstrap` 4. 编译:`gmake` (可能是make的别名) 5. 安装:`gmake install` 6. 链接环境变量:`ln -s /usr/local/bin/cmake /usr/bin/cmake` 7. 也提到下载二进制包的方法 - 引用[5]: 是关于MySQL安装的,无关,可以忽略。 用户指定要安装CMake 3.18.2版本,所以我应该聚焦在手动安装源码的方法上,因为引用中多次提到。 步骤总结: 1. **安装依赖项**:确保安装OpenSSL和其他可能的依赖。引用[1]中提到`yum -y install ncurses-devel openssl-devel`,需要root权限。 2. **下载源码**:使用wget下载CMake 3.18.2源码包。 3. **解压源码**:使用tar命令解压。 4. **编译和安装**:进入目录,运行`./bootstrap`,然后`make`,最后`sudo make install`。 5. **设置环境变量**:可能需要链接或添加到PATH。引用[4]中提到使用链接命令:`ln -s /usr/local/bin/cmake /usr/bin/cmake`以确保系统可以找到cmake。 额外考虑: - 用户是CentOS 7系统。 - 安装后验证:建议用户运行`cmake --version`检查安装是否成功。 - 二进制安装选项:引用[2]和[4]提到可以使用预编译的二进制包,如`cmake-3.18.2-Linux-x86_64.tar.gz`。下载后只需解压并添加到PATH即可,这可能更简单。 - 步骤:下载二进制包,解压,然后添加bin目录到PATH或链接到/usr/bin。 由于用户指定版本3.18.2,我应该提供两种方法:手动编译和二进制安装,让用户选择。 结构化回答: 1. **介绍**:简要说明方法。 2. **方法一:手动编译源码** - 安装依赖 - 下载源码 - 解压 - 编译和安装 - 设置环境变量 3. **方法二:使用预编译二进制包** - 下载二进制包 - 解压 - 添加到PATH或创建链接 4. **验证安装** 5. **相关问题**:根据系统级指令,生成相关问题。 使用中文回答,确保清晰。 确保LaTeX格式正确:所有行内数学表达式用$...$,独立公式用$$...$$。但在这个安装指南中,可能没有数学表达式,所以不需要。 生成相关问题- 例如:编译过程中常见错误如何解决? - CMake版本检查方法? - 如何卸载旧版本CMake? 基于引用末尾添加引用标识,例如[^1]。 最终回答结构: - 开头回答用户问题- 提供步骤。 - 结尾添加相关问题。 </think>以下是针对在CentOS 7系统上安装CMake 3.18.2版本的详细方法。基于提供的引用信息[^1][^2][^3][^4],我将提供两种主流方法:**手动编译源码**(推荐用于自定义配置)和**使用预编译二进制包**(更快捷)。两种方法均需root权限,建议在终端中以root用户或通过`sudo`执行命令。 ### 方法一:手动编译源码(适合需要自定义选项) 此方法从源码编译安装,确保兼容性。步骤如下: 1. **安装依赖项** CMake编译依赖OpenSSL和ncurses等库。先更新系统并安装依赖: ```bash yum update -y yum install -y gcc gcc-c++ make ncurses-devel openssl-devel # 安装编译工具链和基础依赖[^1][^3] ``` 2. **下载CMake 3.18.2源码** 从官方GitHub仓库下载源码包: ```bash wget https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz ``` 3. **解压源码并进入目录** ```bash tar -zxvf cmake-3.18.2.tar.gz cd cmake-3.18.2 ``` 4. **配置和编译** 运行bootstrap脚本生成Makefile,然后编译: ```bash ./bootstrap --prefix=/usr/local # 指定安装路径为/usr/local make # 编译过程可能持续数分钟,取决于系统性能 ``` 5. **安装CMake** ```bash make install # 需要root权限 ``` 6. **设置环境变量** 将CMake执行文件链接到系统路径,确保全局可用: ```bash ln -s /usr/local/bin/cmake /usr/bin/cmake # 创建符号链接[^4] ``` ### 方法二:使用预编译二进制包(快捷简便) CMake提供Linux平台的预编译包,无需编译,直接解压即可使用。 1. **下载二进制包** 选择适用于CentOS的x86_64架构包: ```bash wget https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2-Linux-x86_64.tar.gz ``` 2. **解压并安装** ```bash tar -zxvf cmake-3.18.2-Linux-x86_64.tar.gz -C /usr/local # 解压到/usr/local mv /usr/local/cmake-3.18.2-Linux-x86_64 /usr/local/cmake # 重命名目录 ``` 3. **设置环境变量** 将CMake的bin目录添加到PATH: ```bash echo &#39;export PATH=/usr/local/cmake/bin:$PATH&#39; >> /etc/profile # 永久生效 source /etc/profile # 立即生效当前会话 ``` **或**手动创建符号链接: ```bash ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake ``` ### 验证安装 无论哪种方法,安装后运行以下命令检查版本: ```bash cmake --version ``` 输出应为:`cmake version 3.18.2`。 ### 注意事项 - **权限问题**:所有命令需root权限(使用`sudo`或在root用户下执行)[^1]。 - **依赖错误处理**:若编译时提示缺少OpenSSL(如`Could NOT find OpenSSL`),重新安装依赖:`yum reinstall -y openssl-devel`[^1][^3]。 - **卸载旧版本**:如果系统已安装旧版CMake,先卸载:`yum remove -y cmake`(仅适用于yum安装的版本)。 - **下载源可靠性**:GitHub下载可能慢,可替换为国内镜像(如阿里云),但确保URL一致[^2][^4]。 ### 相关问题 1. 编译CMake时遇到“Could NOT find OpenSSL”错误,如何解决?[^1][^3] 2. 如何升级CentOS 7上的CMake到更高版本(如3.25.0)?[^3][^4] 3. 使用二进制包安装与源码编译相比有何优缺点?[^2][^4] 4. 如何验证CMake安装后是否能正常编译简单C++项目?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值