Linux——普通用户离线源码编译 gcc-9 方法和调用教程

一、前言

1. 场景痛点

  • 服务器无管理员sudo权限,无法apt/yum安装gcc-9

  • 服务器无外网,不能用conda在线安装gcc,只能纯离线编译

  • CUDA11.1 仅支持最高gcc10,系统默认gcc版本过高,编译DCNv2等cuda算子报错:unsupported GNU version! gcc versions later than 10 are not supported!

2. 环境信息

环境版本
系统Linux x86_64
CUDA11.1
目标编译器gcc-9.5.0(稳定版)
权限普通用户,无root
网络服务器内网离线,无外网

3. 最终效果

将gcc9安装至个人用户目录,不改动系统任何文件,多gcc版本共存;后续可直接用于CUDA11.1算子编译,彻底规避nvcc编译器版本不兼容问题。


二、前期准备(有网机器提前下载,上传服务器)

服务器无网络,需要提前在自己电脑下载完整源码+依赖,打包上传至服务器家目录 ~/

1. 下载gcc9.5.0源码

wget https://ftp.gnu.org/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.gz

2. 自动下载gcc必备依赖(关键:gmp/mpfr/mpc/isl)

解压源码后,执行官方脚本自动拉取依赖,无需手动一个个下载

tar -zxvf gcc-9.5.0.tar.gz
cd gcc-9.5.0
# 自动下载并解压4个编译依赖,离线编译必备
./contrib/download_prerequisites

执行完毕后,目录下会出现4个依赖压缩包,不要删除、不要移动,直接把整个 gcc-9.5.0 文件夹上传到服务器。


三、服务器端离线编译(全程无sudo,复刻实操流程)

避坑前置:清空污染环境变量(解决90%编译报错)

conda、之前自定义库路径会给 LIBRARY_PATH 注入当前目录 .,gcc编译脚本严格禁止该符号,会直接报错终止编译。

⚠️ 只清空危险变量,不重置系统PATH,不破坏conda

# 仅清空gcc编译会检测的库路径,保留conda和系统PATH不变
unset LIBRARY_PATH
unset CPATH
unset C_INCLUDE_PATH
unset CPLUS_INCLUDE_PATH

1. 进入源码目录,清理旧编译缓存

cd ~
# 删除之前失败的编译目录,彻底重来
rm -rf gcc-9.5.0/build_gcc9
cd gcc-9.5.0
# 新建独立编译目录(源码和编译文件分离,最佳实践)
mkdir build_gcc9
cd build_gcc9

2. configure配置(无sudo专属参数,直接复制)

../configure \
--prefix=$HOME/software/gcc9 \
--enable-languages=c,c++ \
--disable-multilib

参数解释:

  • --prefix=$HOME/software/gcc9:安装到个人家目录,无需任何管理员权限

  • --enable-languages=c,c++:只编译C/C++,减少编译时间,无需多余语言

  • --disable-multilib:仅编译64位程序,适配服务器环境,避免32位兼容报错

3. 编译&安装(耗时较长,建议screen后台运行)

# 利用16个CPU核心编译。注意考虑自己设备的cpu核心数
make -j16
# 无sudo直接安装到个人目录,无需管理员权限
make install

编译时长参考:16核服务器约20~30分钟,耐心等待,看到如下日志即为安装成功:

make[1]: Leaving directory '/home/XXX/gcc-9.5.0/build_gcc9'

注意事项:不要中断,第一次运行就得编译完,否则就需要从头(第一步)来一遍。


四、加载本地gcc9,切换编译器版本

1. 临时生效(当前终端)

# 将本地gcc9路径放到环境变量最前面,优先调用
export PATH=$HOME/software/gcc9/bin:$PATH
# 动态库链接路径,解决后续编译找不到库文件问题
export LD_LIBRARY_PATH=$HOME/software/gcc9/lib64:$LD_LIBRARY_PATH

# 校验版本,输出gcc version 9.5.0 即为成功
gcc -v
g++ -v

2. 永久生效(新开终端无需重复输入)

echo 'export PATH=$HOME/software/gcc9/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$HOME/software/gcc9/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

内容概要:本文围绕“阶梯碳下考虑P2G-CCS供需灵活响应的IES优化调度”展开,基于Matlab平台构建综合能源系统(IES)在阶梯式碳交易机制下的优化调度模型。研究深度融合电制气(P2G)碳捕集、利用封存(CCS)技术,结合需求侧灵活响应机制,旨在提升系统的低碳运行能力经济性。通过建立多能流耦合的优化模型,协调电力、天然气、热力等多种能源形式的协同调度,有效降低系统碳排放强度,并借助YALIMIP工具包调用求解器进行高效求解。文档提供了完整的代码实现、模型构建流程结果分析方法,涵盖从问题建模到仿真实现的全过程,具备较强的可复现性科研参考价值。; 适合人群:具备电力系统、能源系统或优化建模相关背景的研究生、高校教师及工程技术人员,尤其适合从事综合能源系统、碳减排策略、P2GCCS技术集成研究的专业人员,需熟练掌握Matlab编程基本的数学规划知识。; 使用场景及目标:①用于研究阶梯式碳交易政策下综合能源系统的低碳经济调度策略;②支撑P2G-CCS技术需求响应机制在IES中的仿真集成性能评估;③作为撰写高水平学术论文(如EI/SCI收录)的技术基础复现资源,推动碳中和背景下能源系统优化方向的创新研究。; 阅读建议:建议结合百度网盘提供的完整代码资料包,按照模块逐步调试程序,重点理解目标函数的设计逻辑、碳交易成本的建模方式、约束条件的数学表达及求解器的配置方法,同时关注多能耦合设备的建模细节,配合公众号“荔枝科研社”获取持续的技术支持案例拓展。
内容概要:本文系统研究了基于卷积神经网络(CNN)支持向量机(SVM)融合的CNN-SVM混合模型在数据分类预测中的应用,尤其聚焦于工业故障识别领域。通过Matlab平台实现,该方法首先利用CNN强大的多层次特征提取能力对原始输入数据进行深度特征学习,自动捕获关键局部模式空间结构信息,随后将提取的高层特征作为输入传递至SVM分类器,借助SVM在高维空间中小样本条件下卓越的分类性能泛化能力完成最终判别任务。文中详尽阐述了模型的整体架构设计、网络参数配置、训练优化流程及特征迁移机制,充分结合了深度学习在特征表达上的优势传统机器学习在分类决策上的稳健性。实验部分通过实际故障数据集验证了该混合模型相较于单一CNN或SVM模型在分类准确率、鲁棒性和抗过拟合能力方面的显著提升,证明了其在复杂故障诊断任务中的有效性先进性; 适合人群:具备一定机器学习深度学习理论基础,熟悉Matlab编程环境,从事故障诊断、模式识别、智能制造、电力系统监控或工业数据分析等相关领域的研究生、科研人员及工程技术开发者; 使用场景及目标:① 应用于旋转机械、电力设备、航空航天等领域的多类别故障识别状态监测;② 掌握深度特征提取传统分类器融合的技术路径,提升小样本、高噪声环境下数据分类的精度可靠性;③ 为撰写高水平学术论文、开展科研项目或工程实践提供可复现的算法框架完整代码支持; 阅读建议:读者应深入理解CNNSVM的协同工作机制,重点分析特征提取层分类层之间的接口设计,建议动手运行并调试所提供的Matlab代码,尝试在不同数据集上进行迁移实验参数调优,以全面掌握该混合模型的应用技巧优化策略。
源码下载地址: https://pan.quark.cn/s/4a2017818320 ### 股票信息采集(实时+历史)在金融行业,特别是股票交易领域,获取精准且及时的股票信息具有核心地位。本文将详细阐述如何借助网络服务来采集股票的实时和历史数据,涵盖股票信息采集的基础途径、具体执行策略以及相关的API接口说明等内容。#### 一、股票信息采集概述股票信息的采集主要可以划分为两大类:实时信息和历史信息。实时信息指的是当前市场环境下最新的股票价格等动态信息;而历史信息则包含了股票过去的交易价格走向及其他相关统计数据。这两类信息对于投资者而言都具有极其重要的意义,能够辅助他们更加深入地分析市场走向并制定相应的投资策略。#### 二、实时信息采集途径##### 1. WebService途径- **接口说明**:文中所提及的`http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx`是提供中国股市数据的WebService服务。该服务由WebXml.com.cn提供,主要用于获取股票的即时信息。- **调用方法**: - `getStockImageByCode`:依据股票代码来获取股票的GIF格式实时走势图,返回的是图片的链接地址。例如`getStockImageByCode?theStockCode=sh000001`。 - `getStockImageByteByCode`:前者功能相似,但返回的是二进制格式的图片数据。 - `getStockInfoByCode`:根据股票代码来获取股票的一系列信息,包括但不限于股票名称、当前价格、开盘价格、收盘价格等,这些信息以字符串数组的形式返回。##...
内容概要:本文提出了一种针对梯级水光互补系统的短期优化调度模型,旨在最大化可再生能源的可消纳电量期望。该模型深度融合水电光伏发电的互补特性,通过建立精确的数学优化框架实现联合调度,有效提升系统对波动性可再生能源的接纳能力。研究采用Matlab进行算法仿真,可能引入蝙蝠算法、粒子群算法等智能优化方法求解具有多约束、非线性特征的复杂调度问题,确保在足水电机组运行约束、光伏出力波动性和电网安全稳定要求的前提下,实现发电效益能源利用效率的最大化,适用于高比例可再生能源接入背景下的电力系统实际调度需求。; 适合人群:面向具备电力系统分析、可再生能源利用或优化调度等相关专业知识背景,熟练掌握Matlab编程工具的科研人员、高校研究生及工程技术人员;特别适合致力于水光互补运行、新能源消纳提升、智能优化算法在能源系统中应用等方向的研究者。; 使用场景及目标:①应用于流域梯级水电站大型地面光伏电站的协同优化运行;②服务于区域电网提升对间歇性可再生能源的消纳能力,降低弃光弃水率;③为电力系统短期调度提供科学决策支持,核心目标是最大化可再生能源的可消纳电量期望值,保障电力供应的经济性稳定性。; 阅读建议:建议读者结合提供的Matlab代码深入剖析模型构建逻辑算法实现细节,重点关注目标函数的数学表达、系统物理约束(如水量平衡、机组出力、电网潮流)的建模方式以及智能优化算法的参数设置收敛性能。可通过复现和调试代码加深理解,并尝试将该优化思路迁移至风-光-储等其他多能互补系统的调度研究中。
内容概要:本文聚焦“基于改进粒子群算法的多无人机协同航迹规划”,结合Matlab代码实现,系统阐述了智能优化算法在复杂三维空间中多无人机路径协同规划的应用。内容涵盖航迹规划的建模方法、避障机制、任务协同策略及多目标优化函数设计,如路径最短、能耗最低、威胁规避等,并通过具体算法实现案例展示了从理论构建到仿真实验的全过程。文档不仅提供了可复现的代码框架,还整合了无人机控制、编队飞行、协同任务分配等关键技术模块,形成面向科研创新的综合性技术资源。此外,文中列举了多种智能算法(如RRT、蚁群、A*等)在路径规划中的对比研究,增强了方案的可扩展性学术参考价值。; 适合人群:具备一定编程基础,熟练掌握Matlab/Simulink环境,从事自动化、控制工程、人工智能、航空航天、机器人或无人机系统研究的科研人员及硕士、博士研究生。; 使用场景及目标:① 实现多无人机在动态复杂环境下的协同航迹规划实时避障;② 复现高水平EI/SCI期刊论文中的优化算法仿真结果;③ 基于现有代码框架进行算法改进创新研究,支撑学术论文撰写科研项目申报;④ 掌握智能优化算法在路径规划、任务分配等工程问题中的建模思路实践方法。; 阅读建议:建议读者结合公众号“荔枝科研社”提供的完整资源包(含Matlab代码、仿真模型、论文资料)进行系统学习,优先运行示例代码以理解算法执行流程,并尝试调整参数设置或引入新的约束条件(如动态障碍物、通信限制),逐步实现从复现到自主创新的跃迁。
代码下载地址: https://pan.quark.cn/s/a8b756c18f9a Live2D Widget English 特性 在网页中添加 Live2D 看板娘 轻量级,除 Live2D Cubism Core 外无其他运行时依赖 核心代码由 TypeScript 编写,易于集成 注:以上人物模型仅供展示之用,本仓库并不包含任何模型。 你也可以查看示例网页: 在 米米的博客 的左下角可查看效果 demo/demo.html,展现基础功能 demo/login.html,仿 NPM 的登陆界面 使用 如果你是小白,或者只需要最基础的功能,那么只用将这一行代码加入 html 页面的 或 中,即可加载看板娘: 添加代码的位置取决于你的网站的构建方式。 例如,如果你使用的是 Hexo,那么需要在主题的模版文件中添加以上代码。 对于用各种模版引擎生成的页面,修改方法类似。 如果网站启用了 PJAX,由于看板娘不必每页刷新,需要注意将该脚本放到 PJAX 刷新区域之外。 但是! 我们强烈推荐自己进行配置,让看板娘更加适合你的网站! 如果你有兴趣自己折腾的话,请看下面的详细说明。 配置 你可以对照 的源码查看可选的配置项目。 会自动加载两个文件: 和 。 会创建 函数,这就是加载看板娘的主函数。 函数接收一个 Object 类型的参数,作为看板娘的配置。 以下是配置选项: 模型仓库 本仓库中并不包含任何模型,需要单独配置模型仓库,并通过 选项进行设置。 旧版本的 函数支持 参数,这要求用户自行搭建后端,可以参考 live2d_api。 后端接口会对模型资源进行整合并动态生成 JSON 描述文件。 自 1.0 版本起,相关功能已通过前端实现,因此不再需要专门的 ,所有模型资源都可...
内容概要:本文围绕基于模型预测控制(MPC)对无人水面艇(USV)进行自主控制的研究展开,系统阐述了利用Matlab实现MPC算法对USV运动轨迹的高精度控制优化过程。文中详细介绍了USV的动力学建模方法,构建了适用于MPC框架的预测模型,并设计了包含状态误差、控制增量和约束条件的目标函数,实现了对未来状态的滚动优化实时反馈校正。通过Matlab仿真实验验证了该方法在复杂海况下的路径跟踪能力、抗干扰性能及控制稳定性,充分展现了MPC在提升无人船自主导航智能化水平方面的显著优势。同时,文档还列举了多项相关科研方向配套代码资源,涵盖路径规划、状态估计、协同控制等领域,凸显其在智能海洋装备自动化系统中的广泛应用前景; 适合人群:具备自动控制理论基础、熟悉Matlab/Simulink编程环境,从事无人系统、船舶自动化、智能控制、 robotics 等方向的研究生、科研人员及工程技术人员; 使用场景及目标:① 深入掌握MPC在非线性、欠驱动系统如USV中的建模控制器设计方法;② 学习先进控制算法在实际工程系统中的仿真实现流程;③ 借助提供的完整代码资源开展科研复现、论文撰写、项目开发或教学示范; 阅读建议:建议结合Matlab代码同步阅读,重点理解系统建模推导、MPC优化问题构建、约束处理技巧及仿真结果分析过程,同时可参考文中提及的其他研究主题拓展技术视野,提升综合科研能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

William.csj

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

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

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

打赏作者

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

抵扣说明:

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

余额充值