2

理解に問題があると思いますが、誰かがやっと説明してくれたら嬉しいです...

独自の静的ライブラリ(.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を静的ライブラリとしてのみ使用したい。すべての実験は、デバッグ構成設定を使用して行われました。

4

1 に答える 1

1

lib の DLL バージョンの lib パスが、静的 lib バージョンの前に表示されているようです。

于 2013-02-25T12:52:57.843 に答える