일부 32비트 arm 장치용 크로스 컴파일 빌드 서버를 구축하려고 합니다. 아키텍처는 다음과 같습니다. (uname -m에서) "armv5tejl" binutils 및 gcc에 대한 대상을 지정해야 합니다. -- target=aarch64-linux (예를 들어) 내 사용 사례의 대상 플래그가 --target=armv5tejl-linux일 것으로 예상해야 합니까? 아니면 어떤 대상 플래그를 사용할지 어떻게 알 수 있나요?
$로 도움을 요청해 보았지만 gcc --target-help| less
유용한 것이 하나도 없었습니다.
답변1
특히 ARM v5TEJ 아키텍처를 의미 armv5tejl
합니다 .uname
ARM926EJ-S CPU.
이 CPU에 대해 컴파일하려면 다음을 사용하십시오.
% /usr/bin/arm-linux-gnueabi-gcc -mcpu=arm926ej-s -o hello hello.c
라이브러리 문제가 있을 수 있습니다. (동적 라이브러리를 사용하지 않고) 바이너리를 정적으로 컴파일해야 할 수도 있습니다. 이것을 사용하십시오 :
% /usr/bin/arm-linux-gnueabi-gcc -static -mcpu=arm926ej-s -o hello hello.c