由于已定义的链接器错误

Linker Errors due to being Already Defined

本文关键字:链接 错误 定义      更新时间:2023-10-16

我已经有一年没有写任何使用LibCurl的.dll插件了,但我决定今晚开始写另一个。不幸的是,我已经与相同的链接错误战斗了将近4个小时,现在我完全迷路了。

我正在静态地构建LibCurl,它在大多数情况下似乎是好的,除了我得到以下链接器错误。

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _calloc already defined in memoverride.obj
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _realloc already defined in memoverride.obj
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _free already defined in memoverride.obj
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc already defined in memoverride.obj
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: __strdup already defined in memoverride.obj
1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: __malloc_crt already defined in memoverride.obj

I have try…

1)由于MSDN说LNK2005而重新组织我的包含库是由这个引起的。

2)通过MSVC应用程序重新构建LibCurl库,然后通过命令行工具。

3)排除引起问题的库。

和一堆我现在都不记得的东西。谁能给我提供一些信息,告诉我如何解决这些问题?

问题是我的。dll是/MT而libcurl是/MD。此外,我最初已经阻止了"libcmt",所以当我将libcurl切换到/MT时,它会弹出错误。