c语言中的静态库问题

c语言中的静态库问题,c,ubuntu-14.04,static-libraries,C,Ubuntu 14.04,Static Libraries,我试图在C中创建一个静态库。我正在使用gcc版本4.8.4(Ubuntu 4.8.4-2ubuntu1~14.04.3) 我的c文件在这里: add.c //Addition operation perform sub.c // Subtract operation perform mul.c // Multiply operation perform div.c // Division operation perform 我正试图使用以下命令来装箱静态库libabc.a ar rcs lib

我试图在
C
中创建一个静态库。我正在使用gcc版本4.8.4(Ubuntu 4.8.4-2ubuntu1~14.04.3)

我的c文件在这里:

add.c //Addition operation perform
sub.c // Subtract operation perform
mul.c // Multiply operation perform
div.c // Division operation perform
我正试图使用以下命令来装箱静态库
libabc.a

ar rcs libabc.a add.c sub.c mul.c div.c
它已经成功创建。但是当我使用
/a.out./libabc.a
运行可执行文件时,我得到了以下错误

./libabc.a: error adding symbols: Archive has no index; run ranlib to add one
collect2: error: ld returned 1 exit status
我做错了什么?请帮帮我

提前感谢。

使用目标文件(
.o
)而不是源文件(
.c
)。像

使用
-c
选项,创建
.o
文件

cc -c -fpic add.c sub.c mul.c div.c
要纯静态链接库,请使用
-static
,如

cc -static yourprgram.c  libabc.a
并运行可执行文件
/a.out
。它成功地工作了

cc -static yourprgram.c  libabc.a