如果有人有信息,我需要你对这个问题的帮助。
我为speex1.2rc1
(ARM架构)配置了xscale-elf
,然后执行了make
和make install
。所以,我在libspeex.a
中获得了/usr/local/lib
并且编译了libogg.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
,我也在Makefile中尝试了行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 :(得分:0)
./configure --host=xscale-elf
您没有告诉您正在编译此内容的主机,但考虑到ld
的路径,您似乎正在进行交叉编译。如果是这样,您的主机可能不 xscale-elf
(但可能是i686-linux-gnu
或其他类似的主机。)
您需要了解 host 和 target 之间的区别,并使用适当的编译器和speex1
重建您的--target=xscale-elf
(无论是什么)
此外,将用于 taget 的库安装到/usr/local/lib
中是错误的要做的事情。