2013-06-16 3 views
1

내 test.c 프로그램은 printf 기능을 사용합니다. 필요한 라이브러리를 정적으로 링크하고 싶습니다. 나는 arm-linux-gnueabi-gcc 크로스 컴파일러를 사용한다.크로스 컴파일러로 정적 연결

나는이

팔 - 리눅스 - gnueabi-gcc가 TEST.C -o 테스트

처럼 내 코드가 통과 컴파일,하지만 그는 여전히 시험의 dissasembly보고 동적 링크를 사용합니다 생각합니다.

libc.a 라이브러리를 정적으로 연결하려면 어떤 옵션을 추가해야합니까?

+0

모든 경고를 얻기 위해'-Wall'을 전달하고 교차 컴파일러'arm-linux-gnueabi-gcc'에 정적 링크를 요청하는'-static' –

+0

또한'-v'를 십자 기호로 전달하여 검사하십시오 - 당신이 원하는 것을 수행하는 (다른 옵션들과 함께) 컴파일러. –

+0

arm-linux-gnueabi-gcc -Wall -static test.c -o test를 입력 한 다음 해체를 시도하면 문제가 발생합니다. 그가 ethernal 루프에 빠진 것처럼 보입니다. 그리고 -v 옵션을 사용하면 디스 어셈블리가 모든 옵션이없는 것처럼 보입니다. 그래서 mabue 나는 그가 동적 연결을 사용한다는 가정에 대해 틀 렸습니다 ... 감사합니다 :) – MarsaPalas

답변

2

이 나를 위해 일

arm-linux-gnueabi-gcc test.c -o test -Xlinker -static /path/to/libc.a 

을보십시오. 또한 정적 libgcc_s가 없다고 불평 할 수도 있습니다. 그런 다음 시도해보십시오.

arm-linux-gnueabi-gcc test.c -o test -Xlinker -static /path/to/libc.a -static-libgcc 

희망이 있습니다.