我使用microsoft-visual-c 6.0在windows上构建一个DLL,包括libxml2的源代码。现在我在我的代码中使用了一些xmlFree()调用,现在我得到链接器警告LNK4049。
我没有丝毫想法,如何摆脱这个警告。我用Google搜索,但我发现的所有信息都超出了我的理解(我通常使用solaris下的gcc)。是否有简单的收据(添加/删除编译器标志或#define / #undef或类似的)?
谢谢, 彼得
答案 0 :(得分:2)
当我将libxml2_a.lib与MSVC 11静态链接时,我收到了此警告。我还没有尝试过DLL版本,所以我不确定它是否会以同样的方式受到影响。
解决方案是在你的项目或makefile中定义这些符号,告诉libxml2头文件假设静态链接并避免dll-import和dll同时导出xmlFree变量:
LIBXML_STATIC
同样适用于libxslt / libexslt:
LIBXSLT_STATIC
LIBEXSLT_STATIC
希望这有帮助。