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

ops/2024/12/17 22:08:56/

在该书刚开始编译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.ppmy.cn/ops/142738.html

相关文章

111.【C语言】数据结构之二叉树的销毁函数

目录 1.知识回顾 2.分析 3.代码 后序遍历销毁(最简洁) 前序遍历销毁(不推荐) 中序遍历销毁(不推荐) 4.将函数嵌入main函数中执行 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.分析 销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根…

D99【python 接口自动化学习】- pytest进阶之fixture用法

day99 pytest使用conftest管理fixture 学习日期:20241216 学习目标:pytest基础用法 -- pytest使用conftest管理fixture 学习笔记: fixture(scope"function") conftest.py为固定写法,不可修改名字,使用c…

.NET平台使用C#设置Excel单元格数值格式

设置Excel单元格的数字格式是创建、修改和格式化Excel文档的关键步骤之一,它不仅确保了数据的正确表示,还能够增强数据的可读性和专业性。正确的数字格式可以帮助用户更直观地理解数值的意义,减少误解,并且对于自动化报告生成、财…

wxwidgets xml插入图片的两种方案

wxwidgets xml插入图片的两种方案: 1.使用wxWidgets中的wxRichTextCtrl插入图片,将wxRichTextCtrl的buffer导出为xml文件 参考richtextctrl例子 if (wxTheClipboard->IsSupported(wxDF_BITMAP)){wxBitmapDataObject data;wxTheClipboard->GetData(data);wxBitmap bi…

【Linux】常用Linux命令大全(持续更新)

前言 汇总常用linux命令及用法,方便大家在日常工作中操作linux的便捷性 一、top命令 top 是一个在 Linux 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息    在键入top命令…

力扣hot100——双指针

283. 移动零 class Solution { public:void moveZeroes(vector<int>& nums) {for (int i 0, j 0; j < nums.size() || i < nums.size(); j) {if (j > nums.size()) {nums[i] 0;continue;}if (nums[j]) nums[i] nums[j];}} }; 双指针&#xff0c;一个指…

鸿蒙调试打包(非正式打包)

文章目录 前言第一步&#xff1a;生成.p12和.csr文件第二步&#xff1a;申请证书的前置步骤第三步&#xff1a;申请证书 前言 HarmonyOS 应用打包后的文件为.app 格式&#xff0c; android 打包后的文件为.apk&#xff0c;IOS 打包后的文件为.apa HarmonyOS通过数字证书&#…

Scala的泛型类和泛型特质

1.Scala泛型类 object Test5 {//格式//定义:类名[T]//使用:类名[类型]abstract class A[T](){val data : Array[T]}class A1 extends A [Int]{override val data : Array[Int]Array(1,2,3)}class A2 extends A[String]{override val dataArray("a","b",&q…