如何为 Arm Cortex M4 交叉编译 GSL?

How to crosscompile GSL for Arm Cortex M4?

我正在使用带有 arm cortex m4 的 STM32 MCU,并且想使用 gsl-2.7.1。但是,我已经尝试过命令 ./configure --prefix=/home/user_name/gsl_arm --target=arm-none-eabi 以及我可以在互联网和工具链教程上找到的所有其他建议,但在最好的情况下,我在与构建库链接时遇到了类似“无法识别”的错误符号”。在最坏的情况下,自动配置的建议选项无法识别(例如,指定 cpu)。有谁知道我必须如何交叉编译它?

我很高兴地说我能够为 Arm Cortex-M4 交叉编译 GSL。如果您使用以下选项调用 autoconf:

COREFLAGS="-mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=soft"
./configure --prefix=/home/$(whoami)/gsl_arm CC=arm-none-eabi-gcc \
CXX=arm-none-eabi-gcc LD=arm-none-eabi-gcc AR=arm-none-eabi-ar \
OBJCOPY=arm-none-eabi-objcopy CCFLAGS="$COREFLAGS" CXXFLAGS="$COREFLAGS" \
LDFLAGS="--specs=nano.specs --specs=nosys.specs $COREFLAGS"  \
--host=x86_64-unknown-linux-gnu

楼主是我的案例的主人,有所不同。请注意,您必须使用软件浮点,因为某些库只使用它。