You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Solaris 11上编译CMake遭遇ELFCLASS32错误,求正确编译方案

在Solaris 11 SPARC上正确编译CMake的解决方案

机器信息

# uname -a
SunOS 5.11 11.3 sun4v sparc sun4v

原操作的核心错误

  • 下载了Linux x86_64预编译包而非CMake源码包,Solaris SPARC与Linux x86_64架构完全不兼容,无法基于该包编译
  • 解压命令语法错误:tar -xzvf cmake-3.25.2-linux-x86_64.tar.gz cd 是无效命令,cd需单独执行
  • Bootstrap命令调用路径错误,不应使用预编译包的二进制文件执行配置

正确编译步骤

1. 安装编译依赖

确保系统具备必要的编译工具:

pkg install gcc gmake wget

2. 下载CMake源码包

以3.25.2版本为例,下载源码压缩包:

wget https://github.com/Kitware/CMake/releases/download/v3.25.2/cmake-3.25.2.tar.gz

3. 解压并进入源码目录

tar -xzvf cmake-3.25.2.tar.gz
cd cmake-3.25.2

4. 执行Bootstrap配置

强制指定64位编译选项(解决ELF类不匹配问题),同时设置安装路径:

./bootstrap --prefix=/opt/cmake-3.25.2 --parallel=$(nproc) CFLAGS="-m64" CXXFLAGS="-m64"

注:-m64 强制编译器生成64位目标文件,避免链接时出现wrong ELF class: ELFCLASS32错误

5. 编译并安装

gmake
gmake install

6. 验证安装结果

直接调用安装后的二进制文件验证版本:

/opt/cmake-3.25.2/bin/cmake --version

错误原因说明

链接阶段出现的wrong ELF class: ELFCLASS32,是因为部分目标文件被编译为32位格式,而Solaris 11 SPARC系统为64位架构,链接器无法混合32位与64位文件。通过添加-m64编译标志,可强制生成64位代码,彻底解决该问题。

内容的提问来源于stack exchange,提问作者chs_voks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:25:40