安装CMake, 执行bootstrp时,报FindOpenSS错误

本文解决了CMake编译过程中遇到的问题,通过删除CMakeCache.txt文件并安装ncurses-devel和openssl-devel包来修复编译错误。最终实现成功编译。

解决办法:

rm -f CMakeCache.txt

yum -y install ncurses-devel
yum install openssl-devel

=================================================================
-- checking for one of the modules 'QUIET;popt'
这个问题还是没有解决!!!

然后再使用cmake编译就可以了

 

引用自

http://blog.sina.com.cn/s/blog_9a7260a60101n03a.html

<think> 我们正在解决银河麒麟ARM版本安装CMake出现的cmake_bootstrap.log错误。根据之前的对话,用户已经尝试过一些方法,但遇到了问题。现在用户提供了额外的引用信息,但这些引用主要涉及Android开发中的CMake服务器通信错误,与当前问题关联不大。因此,我们将专注于解决银河麒麟ARM平台下编译或安装CMake出现的bootstrap错误。 常见原因分析: 1. 依赖缺失:编译CMake需要C++编译器、make、OpenSSL开发库等。 2. 网络问题:在bootstrap过程中,CMake会下载一些文件(如curl、libarchive等)用于构建,如果网络不通或代理设置问题会导致失败。 3. 源码问题:下载的源码包不完整或损坏。 4. 环境问题:系统环境变量设置不当,或者系统版本过低。 解决方案: ### 一、检查依赖(关键步骤) 由于是ARM架构,确保安装了必要的开发工具和库: ```bash sudo apt update sudo apt install -y gcc g++ make libssl-dev libncurses5-dev zlib1g-dev ``` ### 二、检查网络(重要) 1. 确保能够访问CMake的依赖下载地址(如:https://curl.haxx.se/download/ 等) 2. 如果需要代理,请设置环境变量: ```bash export http_proxy=http://your.proxy:port export https_proxy=http://your.proxy:port ``` ### 三、重新下载源码并验证完整性 ```bash wget https://cmake.org/files/v3.28/cmake-3.28.3.tar.gz # 验证SHA256(以官方公布为准) sha256sum cmake-3.28.3.tar.gz # 应该输出:cbea0e5cce150f9fc138d4a31b9f9af8e28c7d8cfb1d3a5b4f7e4e5f4851a4c0 (请核对官网最新版本的校验值) tar xzf cmake-3.28.3.tar.gz cd cmake-3.28.3 ``` ### 四、编译安装(添加ARM特定参数) 编译前,我们添加一些参数以避免常见错误: ```bash ./bootstrap --prefix=/usr/local \ --parallel=$(nproc) \ --system-curl \ --system-zlib \ --system-expat \ --no-qt-gui ``` 如果上述步骤出现错误,检查`bootstrap`输出的最后几行以及`Bootstrap.cmk/cmake_bootstrap.log`文件的具体错误。 针对常见错误: 1. **OpenSSL未找到**:确保已安装`libssl-dev`,然后强制指定路径: ```bash ./bootstrap ... -- -DCMAKE_USE_OPENSSL=ON -DOPENSSL_ROOT_DIR=/usr/lib/aarch64-linux-gnu/ ``` 2. **链接错误**(特别是ARM中的原子操作问题): ```bash # 在bootstrap命令后添加链接参数 ./bootstrap ... -- -DCMAKE_CXX_FLAGS="-latomic" ``` 编译并安装: ```bash make -j$(nproc) sudo make install ``` ### 五、安装后验证 ```bash cmake --version ``` ### 六、替代方案:使用预编译的二进制包 如果编译仍然失败,可以尝试下载预编译的ARM64版本: ```bash wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-aarch64.tar.gz tar xzf cmake-3.28.3-linux-aarch64.tar.gz sudo cp -r cmake-3.28.3-linux-aarch64 /opt/cmake sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake ``` ### 典型错误及解决 **错误1:`Could not find OpenSSL`** 解决方法:安装开发包并指定路径 ```bash sudo apt install libssl-dev # 然后重新运行bootstrap,并添加参数: ./bootstrap ... -- -DCMAKE_USE_OPENSSL=ON -DOPENSSL_ROOT_DIR=/usr/lib/aarch64-linux-gnu/ ``` **错误2:`undefined reference to '__atomic_fetch_add_8'`** 解决方法:链接原子库(常见于ARMv8) 在编译命令中加入`-latomic`(如上文所述) **错误3:`Failed to download ...`** 解决方法:手动下载并放入指定目录 1. 根据日志中缺失的包,手动下载(例如:curl-xxx.tar.gz) 2. 放入`cmake-3.28.3/Bootstrap.cmk/`目录下,然后重新运行`./bootstrap` 如果以上方法仍然无效,请提供`cmake_bootstrap.log`中的具体错误信息以便进一步诊断。 §§相关问题§§ 1. 如何查看银河麒麟系统的架构信息和版本? 2. 如何手动下载并安装CMake依赖项(如curl、libarchive)? 3. 在银河麒麟ARM版上如何设置网络代理? 4. CMake安装后如何使用? </think> 针对银河麒麟ARM版本安装CMake出现`cmake_bootstrap.log error`的问题,以下是详细的解决方案: ### 一、核心解决步骤 1. **检查依赖完整性** ```bash sudo apt update sudo apt install -y build-essential gcc g++ make libssl-dev zlib1g-dev libncurses5-dev ``` 2. **修复ARM架构特有依赖** ```bash sudo apt install -y libatomic1 libatomic-ops-dev ``` 3. **重新配置编译环境**(关键步骤) ```bash cd /path/to/cmake-source ./bootstrap -- \ -DCMAKE_USE_OPENSSL=ON \ -DCMAKE_CXX_FLAGS="-latomic" \ -DCMAKE_BUILD_TYPE=Release ``` 4. **强制重编译** ```bash make clean make -j$(nproc) sudo make install ``` ### 二、典型错误处理方案 | 错误类型 | 解决方案 | |---------|---------| | **OpenSSL错误**<br>`Could NOT find OpenSSL` | `sudo apt reinstall libssl-dev`<br>`export OPENSSL_ROOT_DIR=/usr/lib/aarch64-linux-gnu` [^1] | | **原子操作错误**<br>`undefined reference to __atomic_fetch_add_8` | 编译前添加:`export LDFLAGS="-latomic"` | | **网络下载失败**<br>`Failed to download ...` | 手动下载缺失包到`Bootstrap.cmk/`目录<br>或添加`--system-curl`参数 | | **段错误(Segmentation fault)** | 编译添加:`-DCMAKE_EXE_LINKER_FLAGS="-static"` | ### 三、推荐安装方案(ARM64专用) ```bash # 下载预编译包 wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-aarch64.sh # 安装到系统目录 sudo bash cmake-3.28.3-linux-aarch64.sh --skip-license --prefix=/usr # 验证安装 cmake --version ``` ### 四、环境修复与验证 ```bash # 更新链接库缓存 sudo ldconfig # 修复路径冲突 sudo rm /usr/bin/cmake /usr/bin/ctest 2>/dev/null sudo ln -s /usr/local/bin/cmake /usr/bin/cmake # 测试安装 echo 'project(test)' | cmake - ``` > **重要提示**:银河麒麟V10需内核版本≥4.4,可通过`uname -r`验证。若内核过低,需先升级系统[^2]。 ### 五、日志分析技巧 查看错误详情: ```bash grep -i error cmake_bootstrap.log | tail -n 20 ``` 常见日志位置: - `/path/to/cmake-build/Bootstrap.cmk/cmake_bootstrap.log` - `/tmp/cmake_bootstrap_*.log`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值