为 STM32F4xx 探索板编译 libsndfile

Posted

技术标签:

【中文标题】为 STM32F4xx 探索板编译 libsndfile【英文标题】:Compiling libsndfile for STM32F4xx Discovery Board 【发布时间】:2018-03-18 07:01:29 【问题描述】:

我正在尝试为 STM32F 板交叉编译 libsndfile。我找到了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,但我不确定将它们设置为什么。

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

谢谢

【问题讨论】:

【参考方案1】:

通过在运行./configure --host=arm-none-eabi之前设置export LDFLAGS="specs=nosys.specs"解决了配置问题

【讨论】:

以上是关于为 STM32F4xx 探索板编译 libsndfile的主要内容,如果未能解决你的问题,请参考以下文章

STM32F4xx车辆定位系统设计

STM32F4开发板硬件简介

STM32F4xx那点事——“No Target Connected”解决方法

无法在 STM32f4xx 上启用定时器中断

如何在stm32f2xx or stm32f4xx中使用spi dma来完成全双攻通信

致命错误:stm32f4xx_syscfg.h:没有这样的文件或目录