当前位置: 首页 > article >正文

《自制编译器》--青木峰郎 -读书笔记 编译hello

在该书刚开始编译hello.cb时就遇到了问题。
本人用的是wsl,环境如下,
在这里插入图片描述

由于是64位,因此根据书中的提示,从git上下载了64位的cb编译器
cbc-64bit
在这里插入图片描述

问题一: 通过如下命令编译时,总是报错。

cbc -Wa,"--32" -Wl,"-melf_i386" test/hello.cb

报错信息如下:
在这里插入图片描述
解决方案如下:
在这里插入图片描述

问题二: 成功编译后,无法执行。
在这里插入图片描述
也已经有朋友解决了,如下:
在这里插入图片描述
执行交叉编译中的GCC出现cannot execute binary file: Exec format error的解决方法

安装qemu和binfmt

sudo apt update
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic '\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'

等安装完成功后,再次编译,执行。成功输出hello, world
在这里插入图片描述

搞了半天,遇到的问题,都已经有朋友解决了。再记录一边,把答案扩散开,方便更多朋友。
git_issues
在这里插入图片描述


http://www.kler.cn/a/443075.html

相关文章:

  • Dart语言的语法糖
  • AR 眼镜之-拍照/录像动效切换-实现方案
  • Babylon.js行为编写及使用参考
  • Clickhouse基础(一)
  • MFC读写文件实例
  • 如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程
  • 三维测量与建模笔记 - 7.2 点云滤波
  • mapper.xml传入参数为Map的正确做法
  • springboot使用scoket
  • C#速成(文件读、写操作)
  • Vite打包后动态路由加载失败的问题
  • springboot集成h2数据库并使用多数据源
  • AG32 IDE 开发环境搭建
  • 大模型微调---Prompt-tuning微调
  • spring\strust\springboot\isp前后端那些事儿
  • C# 中的Task
  • YOLOv5-7.0训练过程中出现报错Example: export GIT_PYTHON_REFRESH=quiet
  • 在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色,它是JVM执行引擎的核心组成部分之一。
  • Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数
  • 【Linux基础】基本开发工具的使用
  • Spring Cloud Sleuth 分布式链路追踪入门
  • 【数字化】华为数字化转型架构蓝图
  • jenkins+docker部署springboot+vue项目
  • 【自动化】Python SeleniumUtil 油猴 工具 自动安装用户脚本
  • OceanBase 数据库分布式与集中式 能力
  • 【使用LLM搭建系统】1语言模型,提问范式与 Token