2016-11-30 8 views
0

x86 시스템에서 MIPS 용으로 OATH Toolkit을 빌드하려고합니다. 정적 빌드를 생성하여 모든 MIPS 시스템에서 작동 할 가능성이 높습니다.oath-toolkit의 정적 링크 된 MIPS 빌드를 크로스 컴파일하려면 어떻게해야합니까?

그냥 대상 시스템에서 지원되는 ISA가 더 정확합니다 : mips1 mips2 mips32r1 mips32r2 내가 그것을해야합니까 나는이 작업을 수행하기 위해 툴체인을 준비해야하고 내가 성공적으로 이제 buildroot을 구성하고 구축 이해 것과

inside ~/buildroot-2016.08.1/output/target

oath-toolkit 코드를 넣으려면 buildroot를 어떻게 사용하고 활성화해야합니까?

참고 : 나는 buildroot를 사용하지 않으므로 다른 대안을 고려할 것입니다.

답변

2

적절한 인수를 사용하여 configure 스크립트를 실행하여 교차 루트 컴파일러로 Buildroot 컴파일러를 사용하고 정적으로 연결할 인수를 사용하십시오.

./configure --enable-static --disable-shared \ 
    --target=mips-buildroot-linux-gnu --host=mips-buildroot-linux-gnu \ 
    CC=$HOME/buildroot-2016.08.1/output/host/usr/bin/mips-linux-gcc 

위의 내용은 glibc 및 빅 엔디안 MIPS를 사용한다고 가정합니다. 디렉터리 이름이 ~/buildroot-2016.08.1/output/host/usr/mips*이고 --target/--host 옵션의 올바른 값과 CC= 옵션의 올바른 값인 ~/buildroot-2016.08.1/output/host/usr/bin의 내용을 확인하십시오.

모든 대상 시스템과 호환되도록 "mips 32"아키텍처 변형 (BR2_mips_32)을 선택해야합니다.

또한 glibc에서 NSS 라이브러리를 동적으로로드하려고 시도하기 때문에 완전히 정적으로 링크 된 실행 파일이 없을 수도 있습니다. 예 : 호스트 이름을 확인하는 데 getaddrinfo을 사용하는 경우 이를 방지하려면 uClibc 또는 musl을 사용해야합니다.