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就可以了,除非有源码编译情节。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/833156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt之摄像头操作

简单的摄像头测试类 头文件camerawidget.h #ifndef CAMERAWIDGET_H #define CAMERAWIDGET_H#include <QWidget> #include <QList> #include <QCamera> #include <QCameraInfo> #include <QCameraViewfinder> #include <QCameraImageCapture…

基于FPGA的数字电子钟VHDL代码Quartus仿真

名称&#xff1a;基于FPGA的数字电子钟VHDL代码Quartus仿真&#xff08;文末获取&#xff09; 软件&#xff1a;Quartus 语言&#xff1a;VHDL 代码功能&#xff1a; 数字电子钟 1)设计一个能显示秒、分、时的24小时数字钟 2)用数码管显示出时&#xff0c;分&#xff0c;…

OpenSBI 固件代码分析合集-泰晓社区

泰晓社区&#xff1a;https://tinylab.org/ OpenSBI 固件代码分析&#xff08;一&#xff09;&#xff1a;启动流程OpenSBI 固件代码分析&#xff08;二&#xff09;&#xff1a;fw_base.S 源码分析OpenSBI 固件代码分析&#xff08;三&#xff09;: sbi_init.cOpenSBI 固件代…

JDK生成https配置

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\https证书\weChat.keystore -validity 36500 -keypass 250250 keytool -importkeystore -srcstoretype JKS -srckeystore D:\https证书\weChat.keystore -srcstorepass 250250 -srcalias tomcat -srckeypass 25025…

Unity射击游戏开发教程:(10)创建主界面

主界面开发 玩游戏时,主菜单是事后才想到要做的。实际上几乎每个游戏都有一个主界面。如果你点击打开游戏并立即开始游戏,你会感到非常惊讶。本文将讨论如何创建带有启动新游戏的交互式按钮的主界面/主菜单。 主菜单将是一个全新的场景。我们将添加一个 UI 图像元素,并在图像…

NLP(13)--文本分类任务

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 情感分析&#xff0c;违规检测&#xff0c;商品评论打分 贝叶斯算法&#xff1a; P(B1) 结果为奇数 P(B2) 结果为偶数 P(A) 结果为5 P(A) P(B1) * P(A|B1) P(B2) * P(A|B2) 1/2 1/3 1/20 支持向量机&#xff1a;les…

java中的变量、数据类型、人机交互

变量 变量要素 1、类型&#xff1b;每一个变量都需要定义类型&#xff08;强类型&#xff09;其它语言有弱类型&#xff08;js&#xff09; 2、变量名&#xff1b; 3、存储的值&#xff1b; 声明方式&#xff1a; 数据类型 变量名 变量值&#xff1b; public static vo…

Java之抽象类和接口

一、抽象类 1.抽象类概念 如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类&#xff0c; 比如动物类。没有实际工作的方法 , 我们可以把它设计成一个 抽象方法&#xff0c; 包含抽象方法的类我们称为 抽象类。 2.抽象类语法 在Java中&am…

网络基础——校验

网络基础——校验 网络通信的层次化模型&#xff08;如OSI七层模型或TCP/IP四层模型&#xff09;中&#xff0c;每一层都有其特定的校验机制来确保数据传输的正确性和完整性。 物理层 校验方式 不直接涉及校验和&#xff0c;但会采用信号编码技术&#xff08;如曼彻斯特编码…

Linux磁盘IO、网络IO、零拷贝详解

一、什么是I/O&#xff1f; 在计算机操作系统中&#xff0c;所谓的I/O就是输入&#xff08;input&#xff09;和输出&#xff08;output&#xff09;,也可以理解为读&#xff08;read&#xff09;和写&#xff08;write&#xff09;,针对不同的对象&#xff0c;I/O模式可以划分…

什么是接口和类?Java中的集合框架有哪些主要接口和类?

Java中的集合框架有哪些主要接口和类&#xff1f; Java中的集合框架&#xff08;Java Collections Framework&#xff09;提供了一套丰富的接口和类&#xff0c;用于存储和操作对象的集合。以下是Java集合框架中的主要接口和类&#xff1a; 主要接口 Collection&#xff1a; 这…

【busybox记录】【shell指令】comm

目录 内容来源&#xff1a; 【GUN】【comm】指令介绍 【busybox】【comm】指令介绍 【linux】【comm】指令介绍 使用示例&#xff1a; 逐行比较两个排序后的文件 - 默认输出 逐行比较两个排序后的文件 - 如果一个文件的排序有问题&#xff0c;那么反错&#xff08;默认&…

在 Linux 系统中,有多种方法可以查看系统信息

uname&#xff1a; 显示内核信息&#xff0c;如内核版本和机器类型&#xff08;架构&#xff09;。 uname -a hostname&#xff1a; 显示当前系统的主机名。 hostname lsb_release&#xff1a; 显示 Linux 发行版信息&#xff0c;如代号和描述。 lsb_release -a cat /etc/*rele…

泰迪智能科技中职大数据实验室建设(职业院校大数据实验室建设指南)

职校大数据实验室是职校校园文化建设的重要部分&#xff0c;大数据实训室的建设方案应涵盖多个方面&#xff0c;包括硬件设施的配备、软件环境的搭建、课程资源的开发、师资力量的培养以及实践教学体系的完善等。 打造特色&#xff0c;对接生产 社会经济与产业的…

2009NOIP普及组真题 1. 多项式输出

线上OJ&#xff1a; 一本通传送门&#xff1a; 核心思想&#xff1a; 逐一读入&#xff0c;逐一处理 step1、先输出符号 如果a小于0&#xff0c;则不管在哪个位置&#xff0c;都要输出负号&#xff1b; 如果a大于0&#xff0c;则除了最高次幂&#xff0c;其他都输出号 step2、…

给网站网页PHP页面设置密码访问代码

将MkEncrypt.php文件上传至你网站根目录下或者同级目录下。 MkEncrypt.php里面添加代码&#xff0c;再将调用代码添加到你需要加密的页进行调用 MkEncrypt(‘123456’);括号里面123456修改成你需要设置的密码。 密码正确才能进去页面&#xff0c;进入后会存下cookies值&…

js实现数据按给定数组排序此数组中不存在的会被排序到末尾

let data [{chain:"jjj",num:222},{chain:"ERC20",num:333},{chain:"dyh",num:11},{chain:"OKTC",num:555},{chain:"USDT",num:222}]data.sort((a, b) > {// 期望的顺序; 此数组中不存在的交易对会被排序到末尾const so…

C++ 使用nlohmann/json.hpp库读写json字符串

1. json库 我个人比较喜欢 nlohmann/json.hpp 这个库&#xff0c;因为它只需要一个hpp文件即可&#xff0c;足够轻量&#xff01; 这是它的github地址。 2. 简单实例代码 #include <iostream> #include <json.hpp> #include <fstream> #include <stri…

XAMPP是什么?XAMPP好不好用?

XAMPP是一个免费且开源的软件套件&#xff0c;用于在个人计算机上轻松搭建和运行 Apache 服务器、MySQL 数据库、PHP 和 Perl&#xff0c;让用户可以在个人电脑上搭建服务器环境的平台。 XAMPP的由来是 X(表示跨平台)、Apache、MySQL、PHP 和 Perl 的首字母缩写。 它集成了这…

【软测学习笔记】Python入门Day02

&#x1f31f;博主主页&#xff1a;我是一只海绵派大星 &#x1f4da;专栏分类&#xff1a;软件测试笔记 &#x1f4da;参考教程&#xff1a;黑马教程❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ python安装 1、进入Python的官方下载页面&#xff1a; Download Python | Py…