2012-03-06 5 views
0

정보가있는 경우이 문제에 대한 도움이 필요합니다.연결 오류 : 정의되지 않음 정적 libarary에 대한 참조

xscale-elf (ARM 아키텍처)에 speex1.2rc1을 구성한 다음 makemake install을 실행했습니다. 그래서 나는 에 libspeex.a을 얻었고 libogg.a도 컴파일했습니다. 그것은 그 가능성

./configure --host=xscale-elf 

: 나는이 ./configure 옵션을 통과

/usr/lib/gcc/xscale-elf/3.4.3/../../../../xscale-elf/bin/ld: cannot find -lspeex 
collect2: ld returned 1 exit status 
make: *** [exe0] Error 1 

:하지만 나는이 오류 (LDFLAGS += -lspeex -lm을 추가하여) 내 프로그램에 라이브러리를 링크하고 컴파일 할 때 링커는 libspeex.a을 볼 수 있고, 또한 메이크에 선 LDFLAGS += /usr/local/lib/libspeex.a -lm을 시도했지만 (또한 연결에) 또 다른 오류가 발생했습니다 :

/tmp/ccvi7Pns.o(.text+0x179c): In function `main': 
: undefined reference to `BlinkC$speex_bits_init' 
collect2: ld returned 1 exit status 
make: *** [exe0] Error 1 

답변

0
./configure --host=xscale-elf 

호스트을 컴파일하지 않았지만 ld에 대한 경로가 주어지면 사용자가 상호 컴파일하는 것처럼 보입니다. 그렇다면 호스트는 이 아니며xscale-elf이 아닐 수 있습니다 (단, i686-linux-gnu 또는 그와 같은 일부일 수도 있음).

당신은 호스트대상의 차이를 이해하고, 다시하셔야합니다 speex1 (즉 무엇이든) 적절한 컴파일러와 --target=xscale-elf를 사용하여.

또한, 설치 라이브러리 /usr/local/libtaget 의도가 할 수있는 잘못된 것입니다.