Подтвердить что ты не робот

Связывание статической Runtime библиотеки для Visual С++ Express 2008

Как вы скажете Visual С++ Express 2008 статически связывать библиотеки времени выполнения вместо динамического? Мои exes в настоящее время не работают на компьютерах без какой-либо VS-установки, и я хотел бы изменить это.:)

4b9b3361

Ответ 1

Извините, у меня нет VС++ Express для тестирования, но в стандартной версии я использую Project Properties → Configuration Properties → C/С++ → Code Generation → Runtime Library. Dll и Dll Debug предназначены для динамической компоновки.

Ответ 2

Вы на 100% уверены, что хотите это сделать? Пожалуйста, учтите, что если вы это сделаете и есть уязвимость безопасности, обнаруженная в библиотеке времени выполнения, Microsoft не сможет исправлять ваше приложение через Центр обновления Windows.

Еще одно решение - упаковать Visual С++ Runtime, распространяемое вместе с вашим приложением. Он устанавливается очень быстро и не требует Visual Studio. Также важно отметить, что вам не следует распространять код, связанный с библиотеками времени выполнения отладки, поскольку для них требуется Visual Studio. См. Это сообщение в блоге для получения дополнительной информации о упаковке распространяемого.

РЕДАКТИРОВАТЬ. С учетом сказанного, это зависит от вас. Моя точка зрения заключается в том, что вы не должны игнорировать динамическую компоновку, основанную исключительно на идее, что пользователи должны иметь "какой-то VS установлен", что неверно.

Ответ 3

См. ответ на этот вопрос: Как создать полностью статически связанный файл .exe с Visual Studio Express 2005?. Это для VS2005 Express, но ответ по-прежнему сохраняется.

Для C-runtime перейдите в проект настройки, выберите C/С++, затем "Код" Поколение ". Изменение времени выполнения библиотека" для "многопоточных" вместо "многопоточной dll".

Если вы используете другие библиотеки вам может потребоваться сообщить линкеру игнорировать динамически связанную ЭЛТ в явном виде.

Ответ 4

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

(О, извините, это уже упоминалось).