如何摆脱“LINK:警告LNK4049:本地定义的符号”_xmlFree“导入”?

时间:2013-09-17 08:31:18

标签: c windows linker

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

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

谢谢, 彼得

1 个答案:

答案 0 :(得分:2)

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

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

LIBXML_STATIC

同样适用于libxslt / libexslt:

LIBXSLT_STATIC
LIBEXSLT_STATIC

希望这有帮助。