2012-03-06 75 views
0

我需要你對這個問題的幫助,如果任何人有信息。鏈接錯誤:未定義的引用靜態libarary

我已經爲xscale-elf(ARM架構)配置了speex1.2rc1,然後執行了makemake install。所以,我在/usr/local/lib中獲得了libspeex.alibogg.a也被編譯了。但我當我的圖書館鏈接到我的節目(加入LDFLAGS += -lspeex -lm),並嘗試編譯,我得到這個錯誤:

/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 

我通過./configure選項:

./configure --host=xscale-elf 

這很可能是鏈接器無法看到libspeex.a,我也試過行LDFLAGS += /usr/local/lib/libspeex.a -lm Makefile中卻得到了另一個錯誤(也連接):

/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(無論是)。

此外,用於taget安裝庫到/usr/local/lib錯誤的事情。

相關問題