Debian如何让multilib和交叉编译工具链共存

news/2025/1/15 23:05:55/

Debian一个槽点是gcc/g++/gfortran-multilib和交叉编译工具链如gcc/g++/gfortran-riscv64-linux-gnu会互相卸载,解决办法如下:

1、安装build-essential(gcc/g++/libc6-dev/make/dpkg-dev)和gfortran,记下被安装的gcc版本,这里假设被安装的是gcc-12

sudo apt install build-essential gfortran

2、multilib安装带版本号的包并创建asm符号链接

事实上gcc-multilib仅含有链接到x86_64-linux-gnu/asm的符号链接/usr/include/asm,而g++/gfortran-multilib是空包,因此实际上不必安装这些包,带版本号的包不会和交叉编译工具链冲突,只安装带版本号的包,并手动创建符号链接即可

# --install-recommends=false防止libc6-dev-{i386,x32}试图安装gcc-multilib
sudo apt install --install-recommends=false g{cc,++,fortran}-12-multilib
# gcc-multilib创建了这个重要的链接,需要加上
sudo ln -sv x86_64-linux-gnu/asm /usr/include/asm
# 如果这个链接造成了交叉编译工具链异常,可以临时删除
sudo rm /usr/include/asm

x32程序如果需要运行的话,还需要sudo nano /etc/default/grub将相关内容改为下面的形式,然后sudo update grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet syscall.x32=y"
GRUB_CMDLINE_LINUX="syscall.x32=y"

3、安装其他交叉编译工具链

sudo apt install g{cc,++,fortran}-riscv-linux-gnu


http://www.ppmy.cn/news/1010056.html

相关文章

解决Map修改key的问题

需求 现在返回json数据带有分页的数据,将返回data属性数据变更为content,数据不变,key发生变化 实现1,源数据比较复杂,组装数据比较麻烦 说明:如果使用这种方式完成需求,需要创建对象&#xff0…

Vue3 条件渲染简单应用

去官网学习-》条件渲染 | Vue.js 运行示例&#xff1a; 代码&#xff1a;HelloWorld.vue <template><div class"hello"><h1>Vue 条件渲染</h1><h2 v-if"flag">true显示内容</h2><h2 v-if"flag2">fal…

《吐血整理》高级系列教程-吃透Fiddler抓包教程(33)-Fiddler如何抓取WebSocket数据包

1.简介 本来打算再写一篇这个系列的文章也要和小伙伴或者童鞋们说再见了&#xff0c;可是有人留言问WebSocket包和小程序的包不会抓&#xff0c;那就关于这两个知识点宏哥就再水两篇文章。 2.什么是Socket&#xff1f; 在计算机通信领域&#xff0c;socket 被翻译为“套接字…

JavaScript |(七)BOM及JSON简介 | 轮播图 | 尚硅谷JavaScript基础实战

学习来源&#xff1a;尚硅谷JavaScript基础&实战丨JS入门到精通全套完整版 系列笔记&#xff1a; JavaScript |&#xff08;一&#xff09;JavaScript简介及基本语法JavaScript |&#xff08;二&#xff09;JavaScript自定义对象及函数JavaScript |&#xff08;三&#xff…

P1833 樱花(多重背包)(内附封面)

樱花 题目背景 《爱与愁的故事第四弹plant》第一章。 题目描述 爱与愁大神后院里种了 n n n 棵樱花树&#xff0c;每棵都有美学值 C i ( 0 ≤ C i ≤ 200 ) C_i(0 \le C_i \le 200) Ci​(0≤Ci​≤200)。爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸&#…

基于历史对比学习的时序知识图谱推理(AAAI2023)

知识图谱顶会小记 论文标题 Temporal Knowledge Graph Reasoning with Historical Contrastive Learning 论文链接 https://arxiv.org/pdf/2211.10904.pdf GitHub地址 https://github.com/xyjigsaw/CENET 关键词 Linked Open Data, Knowledge Graphs & KB Completi…

auto-changelog的简单使用

auto-changelog的简单使用 自动化生成Git提交记录&#xff0c;CHANGELOG.md文件 github&#xff1a;https://github.com/cookpete/auto-changelog 安装 npm install -g auto-changelog配置脚本 package.json文件下 "scripts": {"changelog": "aut…

webpack基础知识六:说说webpack的热更新是如何做到的?原理是什么?

一、是什么 HMR全称 Hot Module Replacement&#xff0c;可以理解为模块热替换&#xff0c;指在应用程序运行过程中&#xff0c;替换、添加、删除模块&#xff0c;而无需重新刷新整个应用 例如&#xff0c;我们在应用运行过程中修改了某个模块&#xff0c;通过自动刷新会导致…