在 Visual Studio 2008 和 Windows XP 中使用 libxml2
Posted
技术标签:
【中文标题】在 Visual Studio 2008 和 Windows XP 中使用 libxml2【英文标题】:Using libxml2 in Visual Studio 2008 and Windows XP 【发布时间】:2009-08-01 20:54:54 【问题描述】:在 Visual Studio 2008 (VS2008-SP1) 和 Windows XP 下运行使用 GNOME 的 libxml2 的应用程序时遇到一个奇怪的问题。
我有两个 C++ 项目:
项目 A(图书馆) 项目 B(依赖于项目 A 的应用程序)两者都在一个 VS 解决方案下。
Project A 使用 libxml2.lib 进行静态编译。我在 A 和 B 两个项目的库中添加了依赖项。
解决方案完美编译。唯一的问题是,当我运行它时,我在 Windows XP 下收到以下错误:
“此应用程序无法启动,因为找不到 libxml2.dll。重新安装应用程序可能会解决此问题”。
我已经在两个不同的 Windows XP SP3 安装中尝试过这个。最奇怪的是它在 Windows Vista 上运行得非常好,而且我认为它不应该寻找 DLL,因为它是静态编译的。对吧?
有什么想法吗?
【问题讨论】:
【参考方案1】:考虑到 libxml2 是基于 Gnome 的项目,我猜它不会默认出现在任何 Windows 安装中。
我打赌它在 Vista 上运行的原因是您在 Vista 上安装了一个不同的程序,它恰好包含该库。因此,它在那里工作是偶然的,而不是设计的。
我同意里奇的观点。解决这个问题的最好方法是退出 DependencyWalker 并查看 XP 而不是 Vista 上哪些依赖项失败了。这将导致您遇到问题。
【讨论】:
您的猜测是 100% 准确的。谢谢。【参考方案2】:假设您已经检查了明显的内容(XP 机器上是否存在 libxml2.dll?),您可能会发现 Dependency Walker 很有帮助 - 它会提供比 Windows 自己提供的更详细的错误和日志记录。
可能是缺少 libxml2 本身的依赖项 - Dependency Walker 会告诉您该依赖项是什么。
【讨论】:
我应该提到我是静态编译的。在那种情况下,我认为我不需要 DLL。我将更新我的问题以反映它。伟大的实用程序 Dependency Walker:谢谢!以上是关于在 Visual Studio 2008 和 Windows XP 中使用 libxml2的主要内容,如果未能解决你的问题,请参考以下文章
使用部分类和设计器文件将 Visual Studio 2003 表单转换为 Visual Studio 2005/2008 表单
从 Visual Studio 2008 升级到 Visual Studio 2010 速成版
在visual studio2008上用c#写的程序应该用啥软件来画类图
如何在 Visual Studio 2010 中使用 Visual Studio 2008 创建的 DLL?