설치하려고 하는데PongoOS의 포크데비안 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이 없음을 의미합니다. 이러한 바이너리를 수신하기 위해 이 메이크파일을 어떻게 얻을 수 있습니까? 제가 GNU/Linux 세계를 처음 접했기 때문에 이것이 어리석은 질문이었다면 사과드립니다.
답변1
"다음" 명령줄은 링크한 지침의 6단계입니다.
2단계( git clone https://github.com/konradybcio/pongoOS
)는 디렉토리를 생성해야 하며 pongoOS
3단계( cd pongoOS
)는 이를 현재 작업 디렉토리로 설정해야 합니다. 6단계를 수행하려면,당신은 여전히 해당 디렉토리에 있어야합니다.
"makefile"은 바이너리 파일이 아니라 특별히 형식이 지정된 텍스트 파일입니다. 2단계 결과 디렉토리에는 pongoOS
다수의 디렉토리와 5개 정도의 파일이 포함되어야 합니다. 그 중 하나는 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
프로세스는 많은 양의 출력을 생성하며 그 중 대부분은 단순히 정보를 제공합니다. 그러나 오류를 수정하려고 할 때 빌드 프로세스의 어느 부분에서 실제로 오류가 발생했는지 확인하려면 이러한 정보 메시지가 필요할 수 있습니다.