我试图用gcc编译和链接一些C代码。我的代码使用了一个名为gsl的库,我想静态链接。
我可以使用位于usr / lib中的预编译库编译和链接我的代码。但我试图仅将其与库中所需的目标文件链接起来。 库在头文件中使用内联函数,这些头文件包含在我的目标文件中,但是我自己的代码。
在链接这些目标文件时,我得到了对这些内联文件的未定义引用。
我编译:
gcc file.c -c -std=c99 -DHAVE_INLINE -DHAVE_CONFIG_H -I/usr/include/gsl
我实际上已经测试了-std = c99和-std = gnu90。 (我已经用相同的标准编译了所有文件(我自己的和目标文件)。
并链接:
gcc ownfile.o lib.a libgslcblas.a -lm
其中lib.a包含我自己的代码所需的所有目标文件。