自从我编写任何使用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
我试过......
1)重新组织我的包含的libs,因为MSDN说LNK2005是由此引起的。
2)通过MSVC Application重建LibCurl lib,然后通过命令行工具重建。
3)排除导致问题的库。
以及其他一些我现在甚至都记不住的事情。任何人都可以帮我解决一些关于如何解决这些问题的信息吗?
答案 0 :(得分:2)
问题是我的.dll是/ MT而libcurl是/ MD。另外,我最初阻止了“libcmt”,所以当我将libcurl切换到/ MT时,它就是喷出错误。