为 STM32F4xx 探索板编译 libsndfile

Compiling libsndfile for STM32F4xx Discovery Board

我正在尝试交叉编译 libsndfile for the STM32F board. I found this SO 问题,但我在配置步骤中遇到了问题。

我已经用apt install gcc-arm-none-eabi安装了交叉编译工具。

我 运行 ./autogen.sh 然后 export CC=arm-none-eabi-gcc./configure --host=arm-none-eabi。我还尝试了上述 SO 问题中的其他主机选项。

但是配置返回:

checking for arm-none-eabi-gcc... arm-none-eabi-gcc
checking whether the C compiler works... no
configure: error: in `/home/arun/build/libsndfile':
configure: error: C compiler cannot create executables
See `config.log' for more details

config.log 显示:

configure:4135: arm-none-eabi-gcc    conftest.c  >&5
 /usr/lib/gcc/arm-none-eabi/4.9.3/../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit':
/build/newlib-5zwpxE/newlib-2.2.0+git20150830.5a3d536/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/exit.c:70: 
undefined reference to `_exit'
collect2: error: ld returned 1 exit status

这导致 another SO 问题,所以我手动编辑配置并将 --specs=nosys.specs 添加到 ac_compile 和 ac_link 变量。但我仍然看到错误。

libsndfile 的作者 suggested 设置了 CFLAGS 和 LDFLAGS,但我不确定将它们设置成什么。

现在不确定还可以尝试什么。有人能指出我正确的方向吗?

谢谢

通过在 运行 ./configure --host=arm-none-eabi

之前设置 export LDFLAGS="specs=nosys.specs" 解决了配置问题