crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Компиляция в Visual Studio с ключом /MT, ошибки при линковке
AD
  опции профиля:
сообщение 3.2.2009, 11:37
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


При компиляции dll использую ключ /MT (Runtime library: Multi-threaded).
При линковании возникают подобные ошибки:
Linking...
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _realloc already defined in LIBCMT.lib(realloc.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _exit already defined in LIBCMT.lib(crt0dat.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _fflush already defined in LIBCMT.lib(fflush.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _getenv already defined in LIBCMT.lib(getenv.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _memmove already defined in LIBCMT.lib(memmove.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __errno already defined in LIBCMT.lib(dosmap.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strncmp already defined in LIBCMT.lib(strncmp.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isspace already defined in LIBCMT.lib(_ctype.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isalnum already defined in LIBCMT.lib(_ctype.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _tolower already defined in LIBCMT.lib(tolower.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strchr already defined in LIBCMT.lib(strchr.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __tzset already defined in LIBCMT.lib(tzset.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isupper already defined in LIBCMT.lib(_ctype.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isalpha already defined in LIBCMT.lib(_ctype.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _isdigit already defined in LIBCMT.lib(_ctype.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __control87 already defined in LIBCMT.lib(ieee87.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __clearfp already defined in LIBCMT.lib(ieee87.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __close already defined in LIBCMT.lib(close.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _fclose already defined in LIBCMT.lib(fclose.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __lseeki64 already defined in LIBCMT.lib(lseeki64.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __write already defined in LIBCMT.lib(write.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __get_osfhandle already defined in LIBCMT.lib(osfinfo.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: __open_osfhandle already defined in LIBCMT.lib(osfinfo.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _wcslen already defined in LIBCMT.lib(wcslen.obj)
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _strrchr already defined in LIBCMT.lib(strrchr.obj)
MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)
   Creating library ..\..\Bin\Release\KeyGenerationBlock\KeyGenerationBlock_s.lib and object ..\..\Bin\Release\KeyGenerationBlock\KeyGenerationBlock_s.exp
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
..\..\Bin\Release\KeyGenerationBlock\KeyGenerationBlock_s.dll : fatal error LNK1169: one or more multiply defined symbols found
Results
         
Build log was saved at "file://d:\Projects\Win32\Obj\Release\KeyGenerationBlock\BuildLog.htm"
KeyGenerationBlock_s - 30 error(s), 1 warning(s)

Как отключить ненужный уже MSVCRT? Заранее благодарен.

Сообщение отредактировал Litkevich Yuriy - 3.2.2009, 14:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 3.2.2009, 12:59
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(AD @ 3.2.2009, 15:33) *
При чем здесь вообще Qt?
хех, я не обратил внимание на название форума. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 3.2.2009, 13:37
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Нашел решение проблемы. При установке ключа /MT также следует сделать следующее:
В свойствах проекта, вкладке C/C++ в подвкладке Advanced установить флаг /Zl (Omit Default Library Names).
Все ошибки сразу же пропадут.

Но есть тогда такой вопрос: как полностью избавиться от зависимости от MSVCR80.dll? Установка указанных ключей избавило от MSVCP80.dll, что еще надо поставить, чтобы и эту dll вовнутрь спрятать? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- AD   Компиляция в Visual Studio с ключом /MT   3.2.2009, 11:37
- - Litkevich Yuriy   а ты на QtCentre все про это дело прочитал, ни чег...   3.2.2009, 12:29
|- - AD   Цитата(Litkevich Yuriy @ 3.2.2009, 12:29)...   3.2.2009, 12:33
- - Litkevich Yuriy   Цитата(AD @ 3.2.2009, 15:33) При чем здес...   3.2.2009, 12:59
|- - AD   Нашел решение проблемы. При установке ключа /MT та...   3.2.2009, 13:37
- - Litkevich Yuriy   AD, прочитай в прогорг вики статью, может, что-то ...   3.2.2009, 13:58
|- - AD   Цитата(Litkevich Yuriy @ 3.2.2009, 13:58)...   3.2.2009, 14:16
|- - AD   Кто-нибудь, помогите, пожалуйста, очень нужно...   4.2.2009, 11:28
- - kuler   Цитата(AD @ 3.2.2009, 13:37) Но есть тогд...   4.2.2009, 11:34
|- - AD   Цитата(kuler @ 4.2.2009, 11:34) Не уверен...   4.2.2009, 17:09
- - kuler   Цитата(AD @ 4.2.2009, 17:09) аковой вообщ...   4.2.2009, 17:46
|- - AD   Цитата(kuler @ 4.2.2009, 17:46) где нет? ...   4.2.2009, 18:01
- - kuler   а зачем ее отрубать? и в linker->input есть in...   4.2.2009, 18:52
|- - AD   Цитата(kuler @ 4.2.2009, 18:52) а зачем е...   4.2.2009, 19:12
- - kuler   вообще поиск в гугле выявил схожие проблемы, но вр...   5.2.2009, 10:38
- - kalombo   Не знаю как начать, поэтому опишу всё, что я сдела...   5.2.2009, 17:54
- - Litkevich Yuriy   Цитата(kalombo @ 5.2.2009, 20:54) а в нём...   5.2.2009, 18:17
|- - AD   Забавно у кое-кого получилось. Вопрос: что еще сл...   5.2.2009, 18:58
- - kuler   кстати зависимость может быть изза того что сама q...   13.3.2009, 11:21
|- - AD   Цитата(kuler @ 13.3.2009, 11:21) кстати з...   13.3.2009, 11:32
- - kuler   Цитата(AD @ 13.3.2009, 11:32) Вроде как о...   13.3.2009, 12:37
- - AD   Цитата(kuler @ 13.3.2009, 12:37) а она у ...   13.3.2009, 12:57


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 1:20