Я написал приложение в VS C ++ 2010 Express Edition, которое состоит из нескольких библиотек DLL, а также зависит от некоторых сторонних библиотек DLL.Само приложение является библиотекой DLL.
Как оказалось, для того, чтобы оно работало на другом компьютере, пользователь должен установить распространяемую среду выполнения VS 2010.
Я пытался собрать свою DLL с флагом / MT вместо / MD - я считаю, что это означает, что я хочу статическое связывание. Однако в этом случае я получил ошибки «множественного определения» о MSCVRT.lib.Сообщение об ошибке также предлагает использовать флаг /NODEFAULTLIB:msvcrt.lib, чтобы избежать этого.Однако с этими настройками мое приложение все еще требует установки во время выполнения.
Может кто-нибудь объяснить мне, как этого избежать?
Спасибо, Робуста
Обновление: если я просто использую флаг / MT вместо / MD, я получаю следующую ошибку
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 C:\MyApp\Release\MyApp.lib and object C:\MyApp\Release\MyApp.exp
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
C:\MyApp\Release\MyApp.dll : fatal error LNK1169: one or more multiply defined symbols found
после добавления флага / NODEFAULTLIB: библиотека Я не получаю ошибок, приложение собрано успешно, но все еще требует установки во время выполнения.
Возможно, что сторонние библиотеки, на который я тоже ссылку, требую время выполнения?