作成した静的ライブラリをリンクしようとしていますが、このエラーが発生します。
libmine.a: could not read symbols: Archive has no index; run ranlib to add one
私はやろうとしましranlib libmine.a
たが、何も変わりませんでした。それでも同じエラーが発生します。どうすればこの問題を解決できますか?
アーカイブ内のシンボルを表示するには、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」を取得している可能性があります。