c - 如何摆脱 "LINK : warning LNK4049: locally defined symbol "_xmlFree“导入”?

标签 c windows linker

我使用 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/

相关文章:

crt0.o 和 crt1.o——有什么区别?

c++ - liboauth 没有被正确链接

c - 受限3人体模拟无法正常工作

c - 谁必须负责以下 scp 示例中的通配符处理?

windows - 有没有办法单独设置数据 block 的复制因子?我在Windows 10上使用单节点hadoop群集

c++ - 在 C 和 C++ 中包含和链接文件

c - 在不使用数组的情况下交换给定数字的备用数字

c - 在 C 中使用#define 进行字符串连接

ios - 无法在 Windows 的 Web 应用程序中调试 iOS 问题?

c++ - 在 C++ 中返回运行时可用虚拟内存的大小