0

mingw-builds 4.8.0 32bit スイートから ld v2.23.2 を持っています。ディレクトリ内の私のプロジェクトには、libtpp.a と libitpp.dll.a というライブラリがあります。1 つ目は単純な静的ライブラリで、2 つ目は対応する共有ライブラリ (Windows の DLL) へのライブラリのインポートです。

-L$$ITPP_DIR/libs -litpp という形式でそこにライブラリをリンクするようにリンカに指示すると、リンカは常に 2 番目のライブラリ (libitpp.dll.a) を選択しますが、最初の (libitpp.a) が必要です。"- litpp" は完全に一致します。

明示的な指示: $$ITPP_DIR/libs/libitpp.a すべて OK。

-l"lib" 命令でライブラリを見つけるためにリンカが使用するルールは何ですか?

前もって感謝します。

4

1 に答える 1

0

これはおそらく重複した質問ですが、そのことを非難するのではなく、ドキュメントのリンクをもう一度提供します: https://sourceware.org/binutils/docs/ld/WIN32.html#WIN32

関連情報は、サブヘッド「dll への直接リンク」の下にあります。-lfoo に -Bstatic を指定しない限り、またはより一般的には、そのようなあいまいな -l 仕様すべてに -static を指定しない限り、両方が存在する場合、ld は常に libfoo.dll.a よりも libfoo.a を優先することに注意してください。

于 2015-04-02T09:27:29.767 に答える