0

Visual Studio 2008 で C++ ソリューションをリンクしようとすると、「LNK1104: ファイル 'stlport_statix.lib' を開けません」というメッセージが表示されます。

STLport をインストールしました。正しいパスが に設定されていTools->Options->Projects And Solutions->VC++ Directories->Library Filesます。ただし、STLport は というファイルを提供していませstlport_statix.libstlport_static.lib

Visual Studio は、末尾の 'c' を 'x' に交換するアイデアをどこから得ますか?

私は Microsoft スタック (Linux/gcc のバックグラウンドを持っている) に慣れていないため、これは本当に単純な間違いである可能性が非常に高いことに注意してください。

編集:「x」がどこから来たのかを見つけました。これは、「動的RTLで構築された静的STLportライブラリ」を意味します。STLPort を構築した人は、そのバージョンを構築しませんでした。

Edit2:/MDプロジェクトが/MT「コード生成」で使用するように設定されているにもかかわらず、 Visual Studio が でビルドされている理由を理解しようとしています。これが問題の根本のようです。

4

1 に答える 1

0

問題が解決しました。見落としていた/MDの代わりにを使用して、ソリューションにプロジェクトがありました。/MT

長い説明:STLportは、動的リンクまたは静的リンクのいずれかのために構築できます。静的リンク用に構築することもできますが、動的にリンクされたランタイムライブラリを使用します。後者は「stlport_statix.lib」と呼ばれるライブラリになりますが、通常の静的にリンクされたライブラリは「stlport_static.lib」と呼ばれます。

STLportを使用してビルドする場合、使用しているか、を使用しているか_auto_link.hに基づいて、リンクするバージョンを決定します。/MD/MT

詳細については、_auto_link.h27〜39行目および_detect_dll_or_lib.h32〜65行目(STLport 5.2.1を想定)を参照してください。

于 2010-10-15T11:50:45.080 に答える