我正在尝试安装PongoOS 的这个分支到 Debian 12.1 使用这些说明我采取的最后一步是在终端中输入以下内容:
EMBEDDED_CC=clang EMBEDDED_LDFLAGS=-fuse-ld=/usr/bin/ld64 STRIP=cctools-strip make all
下一步是使用以下终端命令执行 Pongo.bin:
/path/to/checkra1n -v -V -p -c -k ./build/Pongo.bin
问题是 pongoOS/checkra1n/build 没有 Pongo.bin,也没有 GitHub 页面上列出的任何其他 Makefile 二进制文件。输入第一个命令会导致终端显示此消息:
make: *** No rule to make target 'all'. Stop.
堆栈溢出这条消息表示没有 makefile。如何获取此 makefile 来接收这些二进制文件。如果这是一个愚蠢的问题,我深表歉意,因为我是 GNU/Linux 世界的新手。
答案1
您的“下一步”命令行是您链接的说明中的步骤#6。
步骤#2 ( git clone https://github.com/konradybcio/pongoOS
) 应该生成一个pongoOS
目录,步骤#3 ( cd pongoOS
) 应该将其设置为当前工作目录。要执行步骤#6,你应该仍然在那个目录中。
“makefile”不是二进制文件,而是特殊格式的文本文件。步骤 #2 生成的目录pongoOS
应包含许多目录和五个左右的文件:其中一个名为 simple Makefile
,这就是该make
命令正在查找的内容。
通常,该make
命令期望找到一个名为Makefile
或makefile
在当前工作目录中。有多种方法可以告诉它查看其他目录,但这不是使用它的正常方法。
这Makefile
在 pongoOS 发行版中还包括一个git submodule update --init --recursive
操作,该操作应生成该目录中pongoOS/newlib/Makefile
后续子调用所需的。make all
如果失败 - 例如因为无法下载它所依赖的 Git 存储库 - 可能是子目录git submodule update
中仍然没有 Makefile ,这可能导致错误消息。newlib
但是,这些消息应该是这样的:
make: Entering directory '<some directory>/pongoOS/newlib'
make: *** No rule to make target 'all'. Stop.
make: Leaving directory '<some directory>/pongoOS/newlib'
在此之前的操作应该有错误消息git submodule update
。
但如果你真的看到了仅有的这条make: *** No rule to make target 'all'. Stop.
消息,那么我担心你一定在某个时候弄错了:pongoOS 存储库显然包含一个Makefile并且它已经all
定义了目标。因此,要么您make
在错误的目录中输入了命令,要么前面的步骤中出现了其他问题,因此并非所有必需的文件实际上都下载到了正确的位置。
Makefile 描述了构建过程,该过程可以任意复杂。通常一个make
流程会产生大量输出,其中大部分只是提供信息。但是,当尝试修复错误时,可能需要这些信息性消息来确定构建过程的哪一部分实际上导致了错误。