让cenos7也能轻松用上gcc15和C++23的import std特性 - 故事从xlings开源项目的一个issues开始
-
背景
前段时间社区中xlings项目上有人提了一个关于centos7上 安装gcc15的但是不能使用的问题, 我一看原来是由于glibc的版本太老了导致的 (制作gcc15包的时候我也没考虑太多glibc版本依赖问题)
于是我就折腾了几天给xlings工具增加了一个从源码构建gcc工具链的helper工具 musl-cross-make, 同时也提供了一个预构建的gcc15包, 让我们在centos7上可以用下面简单的方法就能安装gcc15或自己从源码构建gcc15. 最终效果如下:
一键安装gcc15
xlings install gcc@15
自己在本地 一键从源码构建gcc15
xlings install musl-cross-make #安装构建helper工具 # 命令格式: musl-cross-make version [--output yourOutputDir] [--target yourTargetArch] musl-cross-make 15 --output mygcc-15
- 原issues: https://github.com/d2learn/xlings/issues/107
- xlings开源工具: https://xlings.d2learn.org
下面是具体的问题解决过程, 以及 centos上 一键创建支持cpp23的cmake模板工程项目的使用示例&演示...
一、问题和解决的过程
Q1: GLIBC的版本依赖问题
root/.xlings_software_install/xlings-main/bin/xmake: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /root/.xlings_software_install/xlings-main/bin/xmake) /root/.xlings_software_install/xlings-main/bin/xmake: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /root/.xlings_software_install/xlings-main/bin/xmake) /root/.xlings_software_install/xlings-main/bin/xmake: /lib64/libc.so.6: version `GLIBC_2.29' not found (required by /root/.xlings_software_install/xlings-main/bin/xmake) tools/install.unix.sh:行65: xlings: 未找到命令
A1: 使用musl静态构建解决libc的依赖问题 - 已解决
Q2:
xlings install gcc@15.1.0
安装后工具链的使用问题A2: 更新了gcc包(包括15.1.0)对centos的支持, 添加了可从源码构建包的选择及工具
- gcc: 预先构建的二进制gcc工具链包
- 安装命令示例:
xlings install gcc@15
- 安装命令示例:
- fromsource:musl-gcc: 从源码构建基于musl的gcc工具链的xpkg包
- 安装命令示例:
xlings install fromesource:musl-gcc@version
- 安装命令示例:
- musl-cross-make: 可自定义的工具链构建helper工具
- 安装命令示例:
xlings install musl-cross-make
- 使用命令示例:
musl-cross-make version --output yourInstallDir
,musl-cross-make 9.4 --output mygcc-9
构建后会安装到当前目录的mygcc-9下
- 安装命令示例:
原来的gcc
安装gcc15
二、xlings在centos上的一些使用示例 (gcc工具链 + cpp23 import std模块)
会自动安装依赖(gcc15 / cmake4 ...) , 并配置好环境
一键创建模板项目 + 自动安装依赖和配置环境
构建&运行演示
三、其他
- 相关的issus: https://github.com/d2learn/xlings/issues/107
- xlings工具文档: https://xlings.d2learn.org/documents/quick-start/one-click-install.html
- xlings工具仓库: https://github.com/d2learn/xlings
- 包索引仓库: https://github.com/d2learn/xim-pkgindex
- xlings社区论坛交流版块: https://forum.d2learn.org/category/9/xlings