2012-02-12 3 views
1

CodeSourcery에서 arm-none-linux-gnueabi를 사용하여 교차 컴파일하도록 util-linux를 구성하려고합니다. 지금까지의 유일한 문제는 내가 컴파일 한 내 ncurses 라이브러리를 찾을 수 없다는 것입니다.ARM에 대한 크로스 컴파일을 위해 ld 검색 경로에 디렉토리를 추가하는 방법은 무엇입니까?

어떻게하면 ld 검색 경로에 디렉토리를 추가 할 수 있습니까? 내 LIBRARY_PATH 및 LD_LIBRARY_PATH 변수에 추가하려고 시도했지만 아무 것도 수행하지 않습니다. 나는 gcc에 -L 플래그를 추가 할 수 있으며 링커 경로에 추가 할 수 있음을 알고 있지만이 작업을 전역 적으로 수행 할 수있는 방법이 있으므로 한번만 할 수 있으므로 다시 걱정하지 않아도됩니까? 내 LD 검색 경로에 /arm/usr/lib/arm/usr/local/lib을 추가 할

libraries 
=/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/ 
/tools/bin/../lib/gcc/ 
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/arm-none-linux-gnueabi/4.6.1/ 
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/ 
/tools/bin/../arm-none-linux-gnueabi/libc/lib/arm-none-linux-gnueabi/4.6.1/ 
/tools/bin/../arm-none-linux-gnueabi/libc/lib/ 
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/arm-none-linux-gnueabi/4.6.1/ 
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/ 

: 여기

arm-none-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed 's/:/\n/g'의 출력입니다.

다른 명령의 출력이 필요하면!

EDIT : 방금 ​​CFLAGS 환경 변수에 대해 알았습니다. 모든 구성 스크립트/makefile이이를 준수합니까?

감사합니다.

답변

2

컴파일 한 ncurses 라이브러리가 ARM 바이너리에 링크 될 경우, 크로스 컴파일하면 LD_LIBRARY_PATH를 사용할 수 없습니다! LD_LIBRARY_PATH는 현재 런타임에서만 사용되며 응용 프로그램을 빌드 할 때 컴파일러 또는 링커에서 사용하지 않습니다.

CFLAGS의 사용은 Makefile의 작성자에 달려 있습니다. CFLAGS는 환경 변수로 정의 되더라도 자동으로 사용되지 않습니다. autoconf 도구와 같은 도구 만 환경에서 가져 와서 자동으로 사용할 수 있습니다. Makefile들 같은 것을 찾을 수에서 :

$(CC) $(CFLAGS) .... 


를이 조각이있는 경우 다음 메이크은 CFLAGS 변수를 사용합니다. LDFLAGS는 링크 타임 옵션에 사용할보다 적절한 환경 변수입니다.

+1

좋아, 잘 설계된 Makefiles는 그것을 존중해야하지만 다른 사람들이 일하기 위해서는 약간의 조정이 필요할 수 있습니다. 답변 감사합니다! – conman124