본문 바로가기

보드팩토리 – SBC 커뮤니티

기술 Q&A

프로그래밍 HOT

aarch64 용 바이너리 빌드가 실패합니다

작성자펌웨어굽는남자 Lv.2 준회원 작성일 조회311 댓글11

본문

오드로이드 M1 · Ubuntu 24.04 LTS 를 쓰고 있습니다. 전원은 정품 27W USB-C 어댑터 입니다.

PC 에서 ARM64 용으로 빌드하려는데 링크 단계에서 라이브러리를 못 찾습니다.

gcc-aarch64-linux-gnu 를 설치했습니다.

#include <stdio.h>

int main(void) {
    printf("hello %s\n", "arm64");
    return 0;
}

어떻게 확인하면 될까요?

추천0

답변 7

해결됨
24 채택됨

질문한 사람이 채택한 답변

공식 포럼에 같은 이슈가 올라와 있습니다. 커널 버전을 한 단계 내리면 된다는 답이 있었습니다.

스마트홈러
5

작은 프로젝트는 보드에서 바로 빌드하는 편이 빠를 수 있습니다.

#include <stdio.h>

int main(void) {
    printf("hello %s\n", "arm64");
    return 0;
}

다른 SD카드에 깨끗한 OS 를 새로 구워서 같은 증상인지 먼저 확인해 보세요.

실리콘밸리
3

CMake 라면 툴체인 파일을 따로 만들어 쓰세요.

#include <stdio.h>

int main(void) {
    printf("hello %s\n", "arm64");
    return 0;
}

공식 포럼에 같은 이슈가 올라와 있습니다. 커널 버전을 한 단계 내리면 된다는 답이 있었습니다.

오버클럭
3

CMake 라면 툴체인 파일을 따로 만들어 쓰세요.

#include <stdio.h>

int main(void) {
    printf("hello %s\n", "arm64");
    return 0;
}

다른 SD카드에 깨끗한 OS 를 새로 구워서 같은 증상인지 먼저 확인해 보세요.

라떼파이
감사합니다! 덕분에 해결했어요. — 펌웨어굽는남자
저도 이 방법으로 됐습니다. — 소보로빵
2

펌웨어와 OS 를 최신으로 올린 뒤 다시 시험해 보세요. 알려진 버그가 고쳐진 경우가 많습니다.

보드팩토리
1

sysroot 를 보드에서 복사해 --sysroot 로 지정하면 대부분 해결됩니다.

#include <stdio.h>

int main(void) {
    printf("hello %s\n", "arm64");
    return 0;
}
라떼파이
1

sysroot 를 보드에서 복사해 --sysroot 로 지정하면 대부분 해결됩니다.

#include <stdio.h>

int main(void) {
    printf("hello %s\n", "arm64");
    return 0;
}
벤치마커
커널 버전이 몇이세요? — 펌웨어굽는남자
추가로 궁금한 게 있는데 쪽지 드려도 될까요? — 공장장