理解に問題があると思いますが、誰かがやっと説明してくれたら嬉しいです...
独自の静的ライブラリ(.lib)を使用するWin32アプリケーション(.exe)を開発しています。ライブラリは別の静的ライブラリ(実際にはWindows用のlibxml2)に依存しています。
私がしたこと:
- libxmlインクルードディレクトリを.libプロジェクト「VC++ディレクトリ」->「インクルードディレクトリ」に追加しました。
- libをビルドしましたが、ビルドは成功し、.libファイルがOutputフォルダーに表示されました。
- コンソールアプリケーションプロジェクトを作成し、.lib関数(次にlibxml関数を使用)を使用するコードを作成しました。私のlibプロジェクトは、「フレームワークと参照」->「新しい参照の追加」を使用してアプリプロジェクトに参照として追加されました。
- アプリケーションをビルドしようとしましたが、リンカーエラーが発生しました。「リンカー」->「入力」->「追加の依存関係」を介してlibxml2.libをアプリケーションに追加するのを忘れたため、これで問題ありません。そこで、依存関係にlibxml2.libを追加し、そのパスを「VC++ディレクトリ」->「ライブラリディレクトリ」に追加しました。アプリケーションを再ビルドしましたが、ビルドは成功しました。しかし、.exeを起動しようとすると、エラーが表示されます。「libxml2.dllが原因でアプリケーションを起動できませんでした。アプリケーションを再インストールすると、何とか何とか修正される可能性があります」と書かれています。
では、なぜ私の.exeにはlibxml2.dllが必要なのですか?libxml2を静的ライブラリとしてのみ使用したい。すべての実験は、デバッグ構成設定を使用して行われました。