2009-08-01 22 views
1

Visual Studio 2008(VS2008-SP1)およびWindows XPでGNOMEのlibxml2を使用するアプリケーションを実行すると、奇妙な問題が発生します。Visual Studio 2008およびWindows XPでlibxml2を使用

私は2つのC++プロジェクトを持っている:1つのVSソリューションの下

  • プロジェクトA(ライブラリ)
  • プロジェクトB(プロジェクトAに依存するアプリケーション)

両方を。

プロジェクトはlibxml2.libで静的にコンパイルされます。両方のプロジェクトのライブラリに依存関係を追加しましたABです。

ソリューションは完全にコンパイルされます。唯一のことは、実行すると、Windows XPで次のエラーが表示されます。

"このアプリケーションは、libxml2.dllが見つからないため起動できませんでした。

私は2つの異なるWindows XP SP3インストールでこれを試しました。そして、最も奇妙なことは、それがWindows Vista上で完全に正常に動作し、静的にコンパイルされているので、DLLを探しているとは思わないということです。右?

アイデア?

答えて

3

libxml2がGnomeベースのプロジェクトであることを考慮すると、Windowsインストールではlibxml2がデフォルトではインストールされないと考えています。

Vistaで動作する理由は、Vistaにインストールされている別のプログラムがそのライブラリを含むことになるからです。したがって、それは事故によって設計されていません。

私はリッチーに同意します。この問題に取り組む最善の方法は、DependencyWalkerを入手して、依存関係がXPではなく、Vistaで失敗しているかどうかを確認することです。これはあなたの問題につながります。

+0

あなたの推測は100%正確でした。ありがとう。 –

3

明らかに(XPマシンにlibxml2.dllはありますか?)あなたが確認した場合、Dependency Walkerが役立ちます - Windowsがあなた自身で与えるよりも詳細なエラーとログを提供します。

おそらく、libxml2自体には依存していないことがあります。依存関係ウォーカーは、その依存関係を教えてくれます。

+0

私は静的にコンパイルすることを言及している必要があります。私はその場合にDLLが必要とは思わない。 私はそれを反映するために私の質問を更新するつもりです。 大きなユーティリティ依存性ウォーカー:ありがとう! –