我需要在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工具链的库。但是也可以有人给我提供程序吗?
答案 0 :(得分:0)
libgsl.a和libgslcblas.a Windows的预编译库
那些对ARM无效。
为了在另一个平台上工作,需要使用适当的编译器(和设置-Cortex-M4F需要Thumb2指令集)从源代码编译这些库。
答案 1 :(得分: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
,您就可以使用它了。