0

我使用 microsoft-visual-c 6.0 在 Windows 上构建了一个 DLL,包括来自 libxml2 的源代码。现在我在我的代码中使用了一些 xmlFree() 调用,现在我得到了链接器警告 LNK4049。

我没有丝毫的想法,如何摆脱这个警告。我用谷歌搜索,但我发现的所有信息都超出了我的理解范围(我在 solaris 下通常使用 gcc)。是否有简单的收据(添加/删除编译器标志或#define/#undef 或类似的)?

谢谢,彼得

4

1 回答 1

2

当我使用 MSVC 11 静态链接 libxml2_a.lib 时收到此警告。我没有尝试过 DLL 版本,所以我不确定它是否受到同样的影响。

解决方案是在您的项目或 makefile 中定义这些符号,以告诉 libxml2 头文件假定静态链接并避免同时导入 dll 和导出 xmlFree 变量:

LIBXML_STATIC

这同样适用于 libxslt/libexslt:

LIBXSLT_STATIC
LIBEXSLT_STATIC

希望这可以帮助。

于 2014-02-21T12:32:07.783 回答