c中的静态库问题

时间:2017-02-11 07:31:33

标签: c ubuntu-14.04 static-libraries

我正在尝试在C中创建一个静态库。我使用gcc version 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

我做错了什么?请帮帮我。

先谢谢。

1 个答案:

答案 0 :(得分:2)

使用目标文件(.o)代替源文件(.c)。喜欢,

ar rcs libabc.a sum.o mul.o add.o div.o

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

cc -c -fpic add.c sub.c mul.c div.c

要纯粹静态链接库,请使用-static,赞

cc -static yourprgram.c  libabc.a

并运行可执行文件./a.out。它成功地运作了。