我使用 microsoft-visual-c 6.0 在 Windows 上构建了一个 DLL,包括来自 libxml2 的源代码。现在我在我的代码中使用了一些 xmlFree() 调用,我现在收到链接器警告 LNK4049。
我完全不知道如何摆脱这个警告。我用谷歌搜索,但我发现的所有信息都超出了我的理解范围(我通常在 solaris 下使用 gcc)。是否有简单的收据(添加/删除编译器标志或#define/#undef 或类似的)?
谢谢, 彼得
最佳答案
我在使用 MSVC 11 静态链接 libxml2_a.lib 时收到此警告。我没有尝试过 DLL 版本,所以我不确定它是否以同样的方式受到影响。
解决方案是在您的项目或 makefile 中定义这些符号,以告知 libxml2 头文件采用静态链接并避免同时导入和导出 xmlFree 变量:
LIBXML_STATIC
同样适用于 libxslt/libexslt:
LIBXSLT_STATIC
LIBEXSLT_STATIC
希望这对您有所帮助。
关于c - 如何摆脱 "LINK : warning LNK4049: locally defined symbol "_xmlFree“导入”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844933/