如何为arm-none-eabi-gcc交叉编译GSL库?

问题描述 投票:1回答:2

我需要在LPCXpresso 4367(ARM CORTEX M4)的程序中使用GSL库。我试图遵循LPC xpresso的库链接程序,但MCU链接器给我这些错误:

MCUXpressoIDE_10.3.0_2200 \ workspace \ test1 \ Debug /../ src / test1.c:53:对'gsl_linalg_LU_decomp'的未定义引用

MCUXpressoIDE_10.3.0_2200 \ workspace \ test1 \ Debug /../ src / test1.c:56:对'gsl_matrix_alloc'的未定义引用

MCUXpressoIDE_10.3.0_2200 \ workspace \ test1 \ Debug /../ src / test1.c:57:对'gsl_linalg_LU_invert'的未定义引用

对于其他功能也是如此。

我有用于windows的libgsl.a和libgslcblas.a预编译库,它们可以在使用GCC编译器的Windows上完美地处理代码块。

我读到我需要为arm-none-eabi-gcc工具链交叉编译库。但有人可以请我提供程序吗?

arm cross-compiling microcontroller cortex-m nxp-microcontroller
2个回答
0
投票

用于windows的libgsl.a和libgslcblas.a预编译库

这些不适用于ARM。

为了在另一个平台上工作,需要使用适当的编译器(和设置 - Cortex-M4F需要Thumb2指令集)从源代码编译这些库。


0
投票

由于这些库是针对Windows预编译的,因此它们不适用于ARM(正如在另一个答案中所述)

您需要首先交叉编译库。如果按照this过程安装GSL库,则只需根据您的平台更改./config中的参数,例如我使用的:

./config --host=arm-linux-gnueabihf --prefix=/home/yourname/gsl_arm

在带有gsl-2.5文件的.zip文件中,有一个名为INSTALL的文件。在那里,您可以找到有关交叉编译选项的更多详细信息。

如果您已经为不同的设置编译了库,请确保之前使用make clean。在终端上运行make check时交叉编译库后,您可能会遇到错误,但仍然有效。继续使用make install,您就可以使用了它。

© www.soinside.com 2019 - 2024. All rights reserved.