Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我使用 microsoft-visual-c 6.0 在 Windows 上构建了一个 DLL,包括来自 libxml2 的源代码。现在我在我的代码中使用了一些 xmlFree() 调用,现在我得到了链接器警告 LNK4049。
我没有丝毫的想法,如何摆脱这个警告。我用谷歌搜索,但我发现的所有信息都超出了我的理解范围(我在 solaris 下通常使用 gcc)。是否有简单的收据(添加/删除编译器标志或#define/#undef 或类似的)?
谢谢,彼得
当我使用 MSVC 11 静态链接 libxml2_a.lib 时收到此警告。我没有尝试过 DLL 版本,所以我不确定它是否受到同样的影响。
解决方案是在您的项目或 makefile 中定义这些符号,以告诉 libxml2 头文件假定静态链接并避免同时导入 dll 和导出 xmlFree 变量:
LIBXML_STATIC
这同样适用于 libxslt/libexslt:
LIBXSLT_STATIC LIBEXSLT_STATIC
希望这可以帮助。