RISCV 外部GCC 工具链安装@FreeBSD15
在交叉编译的时候,可以使用FreeBSD15默认的工具链:LLVM
也可以使用GCC工具链,GCC可以使用现成pkg包安装,也可以编译安装。
LLVM的特点是高移植性和高效,但学习成本高。GCC的特点是成熟稳定,但优化能力有限。
本文档主要介绍GCC工具链的安装。

外部GCC 工具链pkg包安装
FreeBSD系统下最快捷的方法就是用pkg进行安装。
sudo pkg install riscv64-gcc9 riscv64-binutils
安装库之前可以先配置pkg 镜像以加快下载速度
sudo mkdir -p usr/local/etc/pkg/repos/
sudo vi /usr/local/etc/pkg/repos/FreeBSD.conf
加入内容:
FreeBSD: {
url: "http://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/latest",
}
手工构建GCC 工具链
设置工具链安装目录
注意是在csh 环境哦,先设立PREFIX环境变量。
setenv PREFIX $HOME/riscv
pkg安装需要的包
sudo pkg install bison gmp mpfr mpc gawk gsed pkgconf texinfo
下载riscv-gnu-toolchain源码
首先安装git
pkg install git
下载gcc toolchain源码
git clone https://github.com/freebsd-riscv/riscv-gnu-toolchain
recursive toolchain源码
cd riscv-gnu-toolchain
git submodule update --init --recursive
注意对国内来说,git submodule update --init --recursive要花很多时间,并且可能要尝试多次。
编译
./configure --prefix=$PREFIX
gmake -j16 freebsd
总结
这里走弯路了,其实直接用系统默认的LLVM就行了,除非有GCC情节。
直接用pkg安装GCC就可以了,除非有源码编译情节。
相关文章:
RISCV 外部GCC 工具链安装@FreeBSD15
在交叉编译的时候,可以使用FreeBSD15默认的工具链:LLVM 也可以使用GCC工具链,GCC可以使用现成pkg包安装,也可以编译安装。 LLVM的特点是高移植性和高效,但学习成本高。GCC的特点是成熟稳定,但优化能力有限…...
全栈开发之路——前端篇(9)插槽、常用api和全局api
全栈开发一条龙——前端篇 第一篇:框架确定、ide设置与项目创建 第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇:setup语法,设置响应式数据。 第四篇:数据绑定、计算属性和watch监视 第五篇 : 组件…...
减瘦误区、雷点、陷阱和挑战怎么应对
在减瘦过程中,很多肥胖人群都容易踩到坑。比如陷入误区,认为只有短期快速的减调方式方法,才值得尝试,而忽视身体健康;或是踩到雷点,轻信强速方剂或方法,结果身体产生了排斥或根本没效用白花钱&a…...
Leetcode—946. 验证栈序列【中等】
2024每日刷题(133) Leetcode—946. 验证栈序列 实现代码 class Solution { public:bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {int left 0;for(int i 0; i < popped.size(); i) {while(left &…...
Selenium定位方法及代码
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
GitHub搭建免费博客
一、GitHub仓库准备 搭建博客需要准备两个仓库。一个存放博客图床的仓库,另一个存放博客网站的仓库。 1.1、图床创建 新建仓库 第一步: 第二步: 生成Token令牌 点击右上角头像->Settings->下拉,直到左侧到底&#…...
开源代码分享(28)-含分布式光伏的配电网集群划分和集群电压协调控制
参考文献: [1] Chai Y , Guo L , Wang C ,et al.Network Partition and Voltage Coordination Control for Distribution Networks With High Penetration of Distributed PV Units[J].IEEE Transactions on Power Systems, 2018:3396-3407.DOI:10.1109/TPWRS.2018…...
idea-自我快捷键-2
1. 书签 创建书签: 创建书签:F11创建特色标记书签:Ctrl F11快速添加助记符书签:ctrl shift 数字键 查看书签: shift F11快速定位到助记符书签:Ctrl 数字键 删除书签: delete 2. 自动…...
深入学习指针3
目录 前言 1.二级指针 2.指针数组 3.指针数组模拟二维数组 前言 Hello,小伙伴们我又来了,上期我们讲到了数组名的理解,指针与数组的关系等知识,那今天我们就继续深入到学习指针域数组的练联系,如果喜欢作者菌生产的内容还望不…...
礼赞劳动节,致敬劳动者。节日随想:疾笔耕耘也是一种劳动方式。
马克思也快诞辰了206年了,恩格斯领导的第二国际通过的决议节日也迎来了134岁的生日了,我也继续在劳动的路上。 五月是值得纪念的日子,作为一名无上光荣的分子,无比仰慕崇拜的两位先驱前辈大胡子,其一 生于斯࿰…...
学习Java的日子 Day45 HTML常用的标签
Day45 HTML 1.掌握常用的标签 1.1 标题标签 h1-h6 <h1>一级标签</h1> <h2>二级标签</h2> <h3>三级标签</h3> <h4>四级标签</h4> <h5>五级标签</h5> <h6>六级标签</h6> 显示特点: * 文字…...
兔子与狮子
兔子与狮子 一只骨瘦如柴的兔子,在慢悠悠地吃草 趴在边上的狮子说,多吃点吧,你身上一点肉都没有 兔子说,我正在减肥,体重越来越轻,骨头越来越硬 狮子舔了舔嘴巴,你再狡猾,也是我的…...
GNU/Linux - 系统启动流程及rcS脚本介绍
Linux系统启动流程 在 Linux 系统启动过程中,会按特定顺序执行多个脚本和初始化例程,以使系统进入可用状态。虽然具体顺序可能因 Linux 发行版和版本而异,但以下是典型执行顺序的概括性概述: 1. BIOS/UEFI: 系统开机后…...
对象,字符串的解构赋值
大家想了解更多,可以去看阮一峰的ECMAScript6(ES6)标准入门课程 对象 简介 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } { foo: aaa, bar: bbb }; foo // "aaa" bar // "bbb" 对象的解构与数组有一个重要的不同。…...
Django 静态文件管理与部署指南
title: Django 静态文件管理与部署指南 date: 2024/5/10 17:38:36 updated: 2024/5/10 17:38:36 categories: 后端开发 tags: WebOptCDN加速DjangoCompressWebpackStaticDeployCICD-ToolsSecStatic 第一章:介绍 Django 静态文件的概念和重要性 在 Web 开发中&a…...
ORACLE ODAX9-2的一个误告警Affects: /SYS/MB的分析处理
在运维的多套ORACLE ODAX9-2版本,都遇到了一个计算节点的告警:Description: The service Processor poweron selftest has deteced a problem. Probabity;:100, UulD:cd1ebbdf-f099-61de-ca44-ef646defe034, Resource:/SYS/MB,;此告警从描述上…...
Spring AOP浅谈
什么是AOP? AOP是Aspect-Oriented Programming的缩写,是一种面向切面的编程方法。 在AOP中,一个切面是一组可以独立于其他代码执行的功能,如日志记录、安全性检查、事务处理等。这些功能通常被称为"通知",并…...
数据结构——图的基础知识与其表示
一:图的定义 由顶点的集合和边的集合组成;常以 G(V,E) 表示,G 代表图,V代表 顶点的集合,E代表边的集合; 如图: 在G1图中,有 0~4 五个顶点,有 0-1,0-2&…...
数据库管理-第187期 23ai:怎么用SQL创建图(20240510)
数据库管理187期 2024-05-10 数据库管理-第187期 23ai:怎么用SQL创建图(20240510)1 安装PGX1.1 数据库配置对应用户1.2 使用RPM包安装Graph Server1.3 安装Oracle Graph Client1.4 访问PGX页面 2 SQL Property Graph2.1 创建SQL属性图2.2 关于点和边图元…...
基于VOLOPV2的自动驾驶环境感知系统
基于VOLOPV2的自动驾驶环境感知系统是一个复杂的系统,它主要负责实时检测并识别周围环境中的各种物体和信息,为自动驾驶车辆提供必要的感知数据。以下是对该系统的一个简要介绍: 环境感知是自动驾驶系统中的一个关键部分,它依赖于…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果