Альтернативы включению дистрибутива MS C времени выполнения? - PullRequest
2 голосов
/ 06 сентября 2010

Я использую MSVS 2010 и MSVC ++ E 2010 для сборки своих приложений на C ++, и я заметил, что у многих моих друзей (которые тестируют мои приложения на своих ПК) не установлена ​​библиотека времени выполнения Microsoft C ++ на ихкомпьютеры.Я начал включать распространяемый пакет Microsoft C ++ в мои приложения, но это кажется ненужным.Смогу ли я вместо этого включить библиотеки в мой каталог исполняемых файлов?Я знаю, что одна из используемых библиотек - msvcr100.dll, но есть ли другие, которые мне нужно включить?Или redistro мой лучший вариант?

Ответы [ 4 ]

5 голосов
/ 06 сентября 2010

в опциях вашего проекта, для генерации кода, вы можете выбрать STATICally связанные библиотеки вместо версий DLL. Это устраняет необходимость во внешней зависимости, подобной этой, за счет большего размера EXE.

2 голосов
/ 06 сентября 2010

Вам не обязательно иметь, чтобы иметь библиотеку времени выполнения в вашем исполняемом каталоге, вы можете использовать файл манифеста , который имеет относительный путь, который указывает на время выполнения, если вы хотите. Но да, вы можете включить библиотеки в установку вашего приложения.

Я думаю, что мы обращаемся к msvcr, а также к библиотекам msvcrt и msvcp, которые теперь, когда я это пишу, могут быть немного излишними.

1 голос
/ 06 сентября 2010

Компиляция вашего проекта с / MT решает проблему распространения.Однако будьте осторожны, это может привести к проблемам при использовании DLL.У них будет свой собственный распределитель памяти.Если они экспортируют функцию, предоставляющую указатель или объект C ++, который должен быть освобожден клиентским кодом, вам будет очень сложно диагностировать утечку памяти в ваших руках.Это очень легко сделать, просто верните std :: string, например.

Anyhoo, параметр можно найти, щелкнув правой кнопкой мыши проект в окне обозревателя решений, Свойства, C / C ++, Генерация кода, Библиотека времени выполненияsetting.

Также обратите внимание, что VS2010 поддерживает локальное развертывание.Просто поместите файл msvcr100.dll в тот же каталог, что и ваш EXE.Вам также потребуется msvcp100.dll, если вы используете STL или iostreams.

1 голос
/ 06 сентября 2010

Когда вы создаете приложение для статической среды выполнения, вам не нужно распространять библиотеки времени выполнения.

В противном случае вам необходимо включить среду выполнения Microsoft.

Ссылки наустановщики среды выполнения для Visual Studio 2010

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