Связывание статической библиотеки времени выполнения для Visual C ++ Express 2008 - PullRequest
12 голосов
/ 10 января 2010

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

Ответы [ 4 ]

9 голосов
/ 10 января 2010

Извините, у меня нет VC ++ Express для тестирования, но в стандартной версии я использую Свойства проекта -> Свойства конфигурации -> C / C ++ -> Создание кода -> Библиотека времени выполнения. Dll и Dll Debug предназначены для динамического связывания.

7 голосов
/ 10 января 2010

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

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

РЕДАКТИРОВАТЬ : С учетом сказанного, это ваше дело. Я просто хочу сказать, что вы не должны игнорировать динамические ссылки, основанные исключительно на идее, что у пользователей должен быть «установлен какой-то VS», что неверно.

3 голосов
/ 10 января 2010

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

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

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

0 голосов
/ 25 апреля 2011

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

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

...