2009-08-01 34 views
1

運行在Visual Studio 2008(VS2008-SP1)和Windows XP下使用GNOME的libxml2的應用程序時,出現奇怪的問題。在Visual Studio 2008和Windows XP中使用libxml2

我有兩個C++項目:

  • 項目A(文庫)
  • 項目B(即依賴於項目A的應用程序)

兩個下一個VS溶液。

項目A是用libxml2.lib靜態編譯的。我在兩個項目AB中都添加了對庫的依賴關係。

解決方案編譯完美。唯一的問題是,當我運行它時,在Windows XP下出現以下錯誤:

「此應用程序未能啓動,因爲未找到libxml2.dll。重新安裝應用程序可能會解決此問題。

我已經在兩個不同的Windows XP SP3安裝中嘗試了這一點。最奇怪的是,它在Windows Vista上運行得非常好,我認爲它不應該尋找DLL,因爲它是靜態編譯的。對?

任何想法?

回答

3

考慮到libxml2是基於Gnome的項目,我猜它在任何Windows安裝中都不會默認出現。

我敢打賭,它在Vista上工作的原因是,你有一個不同的程序安裝在Vista上,恰好包含該庫。因此它在那裏偶然地工作而不是設計。

我同意Richie。解決這個問題的最好方法是脫離DependencyWalker,看看哪些依賴在XP上失敗,但不是Vista。這會導致你的問題。

+0

你的猜測是100%準確的。謝謝。 – 2009-08-03 12:26:26

3

假設您已經檢查了明顯的(是XP機器上存在的libxml2.dll?),您可能會發現Dependency Walker有幫助 - 它將提供比Windows自帶的更詳細的錯誤和日誌記錄。

可能它是libxml2本身缺失的依賴關係 - Dependency Walker會告訴你該依賴關係是什麼。

+0

我應該提到我靜態編譯它。在這種情況下,我不認爲我需要DLL。 我將更新我的問題以反映它。 偉大的實用工具Dependency Walker:謝謝! – 2009-08-01 21:04:53

相關問題