Ошибки компоновщика из-за того, что они уже определены - PullRequest
0 голосов
/ 22 июля 2011

Прошло около года с тех пор, как я написал любые плагины .dll, использующие LibCurl, но я решил начать с другого сегодня вечером. К сожалению, я боролся с одними и теми же ошибками компоновщика уже почти 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) Пересборка библиотеки LibCurl с помощью приложения MSVC, а затем с помощью инструмента командной строки.

3) За исключением библиотек, вызывающих проблемы.

и кучу других вещей, которые я даже сейчас не могу вспомнить. Может кто-нибудь помочь мне с некоторой информацией относительно того, как я могу решить эти проблемы?

1 Ответ

2 голосов
/ 22 июля 2011

Проблема в том, что мой .dll был / MT, а libcurl был / MD.Кроме того, я изначально заблокировал «libcmt», поэтому, когда я переключал libcurl на / MT, он извергал ошибки.

...