2009-04-30 13 views
3

Windowsプラットフォームでスタティックライブラリ(.libファイル)を使用していますが、libをビルドするときにCRTライブラリの依存バージョンを知りたいと思います。 .libファイルのソースコードはありません。アイデアはありますか?事前にスタティックライブラリの依存関係

おかげで、 ジョージ

答えて

5

静的ライブラリは、依存関係のそれらの種類を持っていません。ライブラリがビルドされると、実行時にリンクされません。バージョン情報を提供しない実装ヘッダファイル内の関数宣言だけが既知です。

ただし、ライブラリがMS形式であると仮定すると、テキストエディタでライブラリを開いてライブラリをどのように表示するかを確認する必要があります(これを行う前にバックアップを作成してください)。あなたは、このような行を探しています:

cl.exe cmd -nologo -MTd -W3 -Gm -GX -ZI -DWIN32 -D_DEBUG (more stuff) 

-MTdフラグは、ライブラリがマルチスレッドデバッグのサポートでコンパイルされたことを示しています。 。

+0

foo.libとの静的リンク時に次のエラーが発生しました。エラーメッセージは次のとおりです。 - 警告LNK4098:defaultlib 'LIBCMT'は他のライブラリの使用と競合します。/NODEFAULTLIB:ライブラリ、根本的な原因は何ですか? – George2

+0

はい、ライブラリやアプリケーションの1つがマルチスレッドサポートで構築されていましたが、もう1つはサポートされていませんでした。すべてのライブラリとアプリケーションを同じスレッドモデルで構築する必要があります。 –

+0

私は混乱しています、あなたはちょうど静的libが実行時ライブラリ(デバッグ/リリース/シングルスレッド/マルチスレッド)と関係がないと言いました、なぜリンカは静的なlibがスレッドモデルランタイムの別の種類に依存すると思いますか?静的ライブラリがどのような種類の実行時ライブラリに組み込まれているかを確認する方法はありますか? – George2

関連する問題