2017-02-11 30 views
1

Cに静的ライブラリを作成しようとしています。cの静的ライブラリの問題

add.c //Addition operation perform 
sub.c // Subtract operation perform 
mul.c // Multiply operation perform 
div.c // Division operation perform 

そして、私は以下のコマンドを使用して木枠に静的ライブラリlibabc.aをしようとしている:私は使用gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

私のCファイルはここにありますよ。

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 

私は間違っていますか?私を助けてください。

ありがとうございました。

答えて

2

ソースファイル(.c)の代わりにオブジェクトファイル(.o)を使用してください。同様に、

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実行可能ファイルを実行します。それはうまくいく。

関連する問題