crossplatform.ru

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

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
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:29
Сообщение #2


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

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

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




Репутация:   94  


а ты на QtCentre все про это дело прочитал, ни чего не упустил?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 3.2.2009, 12:33
Сообщение #3


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

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

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




Репутация:   17  


Цитата(Litkevich Yuriy @ 3.2.2009, 12:29) *
а ты на QtCentre все про это дело прочитал, ни чего не упустил?

Ты про что? :) При чем здесь вообще Qt? Если ты про сборку Qt, то при сборке я все аккуратненько сделал. Сборка завершилась удачно. Но она в данных ошибках не при чем! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.2.2009, 12:59
Сообщение #4


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

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

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




Репутация:   94  


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


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

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

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




Репутация:   17  


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

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


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

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

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




Репутация:   94  


AD, прочитай в прогорг вики статью, может, что-то найдешь, она отличается от той, что на QtCentre, вроде как универсальностью

Хоть она и ориентирована на Qt, но может ты, как пользователь студии, что-то заметишь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 3.2.2009, 14:16
Сообщение #7


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

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

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




Репутация:   17  


Цитата(Litkevich Yuriy @ 3.2.2009, 13:58) *
AD, прочитай в прогорг вики статью, может, что-то найдешь, она отличается от той, что на QtCentre, вроде как универсальностью

Хоть она и ориентирована на Qt, но может ты, как пользователь студии, что-то заметишь.

Так именно по этой статье я и делал статическую сборку (ведь именно на нее ты ссылку и давал)! ;) Но опять же к данной теме не имеет отношения. Там в файлах заметить нужный флаг - это мазохизм....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 4.2.2009, 11:28
Сообщение #8


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

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

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




Репутация:   17  


Кто-нибудь, помогите, пожалуйста, очень нужно!!!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.2.2009, 11:34
Сообщение #9


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


Цитата(AD @ 3.2.2009, 13:37) *
Но есть тогда такой вопрос: как полностью избавиться от зависимости от MSVCR80.dll?

Не уверен в своем ответе, но тем не менее выскажусь - видимо нужно найти MSVCR80.lib.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 4.2.2009, 17:09
Сообщение #10


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

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

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




Репутация:   17  


Цитата(kuler @ 4.2.2009, 11:34) *
Не уверен в своем ответе, но тем не менее выскажусь - видимо нужно найти MSVCR80.lib.

Таковой вообще нет! :mellow:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.2.2009, 17:46
Сообщение #11


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


Цитата(AD @ 4.2.2009, 17:09) *
аковой вообще нет!

где нет? в мире она наверно есть. А в честь чего она вообще используется? обычно нужные либы подрубаются путем настройки в свойствах проекта linker->input.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 4.2.2009, 18:01
Сообщение #12


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

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

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




Репутация:   17  


Цитата(kuler @ 4.2.2009, 17:46) *
где нет? в мире она наверно есть. А в честь чего она вообще используется? обычно нужные либы подрубаются путем настройки в свойствах проекта linker->input.


Где подрубается, я знаю! :) Но в Visual Studio ее нет впринципе. Может по другому называется? <_<
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 4.2.2009, 18:52
Сообщение #13


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


а зачем ее отрубать?

и в linker->input есть inherit values может с ними чо поделать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 4.2.2009, 19:12
Сообщение #14


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

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

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




Репутация:   17  


Цитата(kuler @ 4.2.2009, 18:52) *
а зачем ее отрубать?

и в linker->input есть inherit values может с ними чо поделать?

:blink: я твоя не понимать....
Мне необходимо узнать какой флажок нужно установить. Напрямую (т.е. ручками) эту библиотеку, msvcrt.lib, подключать не следует - будут ошибки и много. А вот каким флагом это регулируется?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 5.2.2009, 10:38
Сообщение #15


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


вообще поиск в гугле выявил схожие проблемы, но вроде решения я не нарыл
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kalombo
  опции профиля:
сообщение 5.2.2009, 17:54
Сообщение #16


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 5.8.2008
Пользователь №: 252

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




Репутация:   0  


Не знаю как начать, поэтому опишу всё, что я сделал=). Хотел я, чтобы собранные в MSVS Qt-приложения зависели только от Qt-шных библиотек, наткнулся на этот топик, а в нём на ссылку на ПрогОрг. Сделал по статье, зависимость осталась, но только от одной библиотеки - MSVCR90.dll. Погуглил, нашел такое решение
Project Property->Configuration properties->c/c++->code generation->runtime library->MT
Project Property->Linking->Manifest File->Generating Manifest->NO
Только размер приложения увеличился на 40 килобайт. Но думаю это пустяки=) Буду рад, если мой пост кому-то поможет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 5.2.2009, 18:17
Сообщение #17


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

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

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




Репутация:   94  


Цитата(kalombo @ 5.2.2009, 20:54) *
а в нём на ссылку на ПрогОрг.
у них еще обсуждение было.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 5.2.2009, 18:58
Сообщение #18


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

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

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




Репутация:   17  


Забавно у кое-кого получилось. :)
Вопрос: что еще следует указать помимо флага /MT, для того, чтобы не было зависимости от MSVRT*.dll
Ответ: надо указать флаг /MT!

Большое человеческое спасибо! :D

* - версия Visual Studio

Юра, обсуждение было лишь к тому, как лучше отключить манифесты. Один вариант - просто убрать из строки подключения. Второй вариант - подгружать манифест только в том случае, если в настройках проекта пользователь НЕ ЗАПРЕТИЛ его подгружать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 13.3.2009, 11:21
Сообщение #19


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


кстати зависимость может быть изза того что сама qt так собрана - с ней.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 13.3.2009, 11:32
Сообщение #20


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

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

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




Репутация:   17  


Цитата(kuler @ 13.3.2009, 11:21) *
кстати зависимость может быть изза того что сама qt так собрана - с ней.

Вроде как отключил эту зависимость и пересобрал Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuler
  опции профиля:
сообщение 13.3.2009, 12:37
Сообщение #21


Танцор диско
***

Группа: Участник
Сообщений: 441
Регистрация: 11.9.2008
Из: Москва
Пользователь №: 289

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




Репутация:   -1  


Цитата(AD @ 13.3.2009, 11:32) *
Вроде как отключил эту зависимость и пересобрал Qt

а она у тебя не так зависит?

Сообщение отредактировал kuler - 13.3.2009, 15:17
Эскизы прикрепленных изображений
 Р В Р’ Р’ Р’ Р’ Р’ Р’ Р’˜Р В·Р С•бражение уменьшено
Прикрепленное изображение
263 x 255 (11.61 килобайт)
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 13.3.2009, 12:57
Сообщение #22


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

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

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




Репутация:   17  


Цитата(kuler @ 13.3.2009, 12:37) *
а она у тебя не так зависит?

Неа, не так.
[attachment=487:zavisimost.JPG]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 23.7.2025, 17:52