代码之家  ›  专栏  ›  技术社区  ›  Pablo Santa Cruz

在Visual Studio 2008和Windows XP中使用libxml2

  •  1
  • Pablo Santa Cruz  · 技术社区  · 15 年前

    我在运行使用gnome的应用程序时遇到了一个奇怪的问题 libxml2 在Visual Studio 2008(VS2008-SP1)和Windows XP下。

    我有两个C++项目:

    • 项目A(图书馆)
    • 项目B(依赖于项目A的应用程序)

    一对一解决方案。

    项目A 用libxml2.lib静态编译。我在两个项目中都向库添加了依赖项 .

    解决方案编译得很好。唯一的问题是,当我运行它时,我在Windows XP下得到以下错误:

    “由于找不到libxml2.dll,此应用程序启动失败。重新安装应用程序可能会解决此问题”。

    我在两个不同的Windows XP SP3安装中尝试过这种方法。最奇怪的是,它在Windows Vista上运行得非常好,我认为它不应该寻找动态链接库,因为它是静态编译的。对吗?

    有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   JaredPar    15 年前

    考虑到libxml2是基于gnome的项目,我猜想它在任何Windows安装中都不是默认的。

    我敢打赌,它在Vista上工作的原因是你在Vista上安装了一个不同的程序,正好包含了这个库。因此,它在那里工作是偶然的,而不是设计。

    我同意里奇的观点。解决这个问题的最好方法是退出DependencyWalker,看看什么依赖在XP上失败,而不是在Vista上失败。这将导致你的问题。

        2
  •  3
  •   RichieHindle    15 年前

    假设您已经检查了明显的(xp机器上是否存在libxml2.dll?)你可能会发现 Dependency Walker 帮助-它将提供比Windows自己提供的更详细的错误和日志记录。

    可能是libxml2本身的依赖性丢失了-依赖性Walker会告诉您依赖性是什么。