5

作成した静的ライブラリをリンクしようとしていますが、このエラーが発生します。

libmine.a: could not read symbols: Archive has no index; run ranlib to add one

私はやろうとしましranlib libmine.aたが、何も変わりませんでした。それでも同じエラーが発生します。どうすればこの問題を解決できますか?

4

1 に答える 1

5

アーカイブ内のシンボルを表示するには、nm を使用します。

nm -s libmine.a

<出力>

サブルーチンへのエントリ ポイントには、次のように「T」というラベルを付ける必要があります。

00000000T_sub1
00000019 T_sub2

静的ライブラリを作成するために「ar」で使用したスイッチは何ですか? 私は通常、次のように「ar -r」を使用します

ar -r libmine.a mine.o yours.o

それでも問題が解決しない場合は、「-s」オプションを追加してください

ar -s -r libmine.a mine.o yours.o

また、パスに他の「libmine.a」ファイルがないことを確認するか、「libmine.a」への明示的なパスを作成してください。リンカーが別の「libmine.a」を取得している可能性があります。

于 2012-07-05T14:51:04.800 に答える