Я хочу собрать DLL для использования в качестве приложения IIS / ISAPI. Все идет нормально. Оно работает. Тем не менее, я должен перетащить вокруг DLL времени выполнения и других зависимостей (например, некоторые библиотеки Boost).
Я хотел бы создать одну DLL (чтобы упростить развертывание на нескольких серверах).
Поэтому я изменил переключатель с / MD на / MT. Тем не менее, теперь я получаю ошибки дубликатов символов во время ссылки. Например:
msvcprtd.lib(MSVCP100D.dll) : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in gateway.obj
Я озадачен тем, что / MD или / MT - это флаги компилятора, а не флаги компоновщика. И это может каким-то образом объяснить, почему я получаю дублированные символы (так как они будут включены в каждый .obj).
Таким образом, вопрос заключается в следующем: как настроить Visual Studio 10, чтобы получить DLL, которая включает все ее зависимости.