Сборка проекта C ++ для включения ВСЕХ DLL-библиотек MSVC - PullRequest
2 голосов
/ 20 сентября 2011

У меня есть простая программа на C ++.Я хочу просто собрать исполняемый файл и дать его человеку на другой полной не-разработке коробке.Есть ли способ создать такой простой файл с одним исходным кодом для исполняемого файла в Visual Studio, не требуя всей хрени ?Я изменил программу для компиляции в режиме MT, вместо MTD, который статически связывал файл msvcr.dll, но теперь он ищет файл msvcp.dll.Как я могу скомпилировать так, чтобы мой исполняемый файл 1) не включал весь этот мусор или 2) статически связывал все это так, чтобы у меня был ровно один файл для передачи на другой ПК с Windows для запуска

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

Если для компиляции с / MT требуется msvcr100.dll, возможно, что-то, включенное в ваше приложение, пытается с ним связаться, возможно, сторонний компонент. Я бы проверил любые сторонние библиотеки и связанные с ними.

MSVCP100.DLL - это стандартная библиотека C ++. Вы можете дважды проверить, что он не ищет MSVCP100D.DLL, которая является отладочной версией; Это может вызвать смешивание библиотек релиза и режима отладки.

1 голос
/ 20 сентября 2011

MSVCRT100.DLL - это библиотека времени выполнения C, а MSVCP100.DLL - это стандартная библиотека C ++. Оба должны исчезнуть, если вы собираете с / MT, в этом случае должны были использоваться статические версии этих библиотек.

Полагаю, вы либо не полностью перестроили свое приложение после перехода на / MT, либо один или несколько файлов в вашем проекте имеют пользовательские настройки, включающие / MD. Возможно, вы захотите открыть диалоговое окно свойств на странице, где отображается / MT, а затем нажмите один за другим все ваши исходные файлы, чтобы убедиться, что ни один из них по-прежнему не показывает /MD.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...