我正在尝试在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
我做错了什么?请帮帮我。
先谢谢。
答案 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
。它成功地运作了。