0

自从我编写任何使用 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) 由于 MSDN 说 LNK2005 是由此引起的,因此重新组织了我包含的库。

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

3) 排除引起问题的库。

还有一堆我现在想不起来的事情。谁能帮我提供一些关于如何解决这些问题的信息?

4

1 回答 1

2

问题是我的 .dll 是 /MT 而 libcurl 是 /MD。另外,我最初阻止了“libcmt”,所以当我将 libcurl 切换到 /MT 时,它正在喷出错误。

于 2011-07-22T10:04:36.707 回答