|
Модераторы: bsa |
|
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
Я решил раз и навсегда пролить свет на эту тему. так как уже достали =)
Что делать если программа написаная с использованием visual studio 2005 не запускается на другом компьютере. Во первых, следует пояснить, что (почти)любая программа на с++ использует стандартную библиотеку - c runtime library, которая содержит набор функций, используемых программой. Например функции для работы с динамической памятью, со строками, с файлами и много чего еще. Эта библиотека может компоноваться либо динасически, либо статически. Так-же существует release и debug версии библиотеки. По умолчанию, когда вы создаете проект в visual studio, он настроен на использование динамической библиотеки. Поэтому, приложение можно будет запустить только на компьютерах, с установленной CRT библиотекой нужной версии. Самый очевидный способ решения поблемы - уствновить вместе с приложением нужные библиотеки. Для этого существует Microsoft Visual C++ 2005 Redistributable Package (x86/IA64). Этот пакет устанавливает стандартную библиотеку с++ (MSVCR80.dll) а так-же ATL, MFC и OpenMP библиотеки. После этого ваше приложение можно запускать на этой машине. Чуть менее очевидный способ - статическая компоновка. Заходим в опции проекта, находим там опции компилятора (C/C++ -> Code Generation), и меняем параметр Runtime Library с "Multi Threaded DLL (/MD)" на "Multi Threaded (/MT)". Для отладочной версии программы нужно поменять "Multi Threaded Debug DLL (/MDd)", на "Multi Threaded Debug (/MTd)". После перекомпиляции, несем программу на любую машину и запускаем. Добавлено @ 12:38 ps для 2008-й студии нужно использовать Microsoft Visual C++ 2008 Redistributable Package (x86/IA64) Это сообщение отредактировал(а) Lazin - 24.10.2008, 13:13 |
|||
|
||||
JackYF |
|
|||
полуавантюрист Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Следует заметить, что Visual Studio - не единственная среда разработки
А так - спасибо за старания. |
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
просто спрашивают в основном про нее
|
|||
|
||||
bsa |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Есть еще универсальный способ (которым пользуюсь я), который подходит и к другим средам программирования (в т.ч. BCB, Delphi и пр.). Для этого понадобится какая-нибудь программа для просмотра содержимого бинарных файлов. Я использую вьюер входящий в состав Total Commander.
Итак, открываем полученный файл exe с помощью вьюера, и ищем по ".DLL" (без кавычек и учета регистра) или другому расширению (например, ".BPL" для BCB), в зависимости от того, на что ругается программа. Будут находиться всякие библиотеки, в т.ч. и стандартные (kernel32.dll, user32.dll и пр.) и не очень. Последние нужно скопировать в дистрибутив. затем ту же операцию повторить для всех библиотек... и так до тех пор, пока не будут найдены все зависимости... |
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
bsa, действительно так можно делать, а я и не знал
|
|||
|
||||
Ln78 |
|
|||
Опытный Профиль Группа: Участник Сообщений: 274 Регистрация: 25.11.2006 Репутация: нет Всего: 15 |
||||
|
||||
Rickert |
|
|||
Ситхи не пройдут! Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
+тыща.
Модераторы, думаю эту тему стоит закрепить отдельно? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
JackYF |
|
|||
полуавантюрист Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
Закрепил тему.
|
|||
|
||||
Keler |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 14.9.2008 Репутация: нет Всего: нет |
Для 2008 студии только установка Microsoft Visual C++ 2008 Redistributable Package (x86/IA64)?Или есть альтернатива?
|
|||
|
||||
Lazin |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
насколько я знаю разницы, в этом плане, между 2008-й и 2005-й студией нет
|
|||
|
||||
Microsoft |
|
||||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
При компиляции выдаёт:
КАК ЭТО ИСПРАВИТЬ??? ГДЕ ОТКЛЮЧИТЬ "/clr:pure" ??? ( * У меня Microsoft Visual Studio 2008) Это сообщение отредактировал(а) Microsoft - 3.11.2008, 20:42 |
||||
|
|||||
jonie |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
кроме depends (входящей в состав VS) есть утилита dumpbin
использовать ее примерно так:
покажет импортные библиотеки и функции (хотя не умеет делать глубокого сканирования, как, например, depends) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Annihilator |
|
||||||
bytegrinder Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
Смотри Балмер! Я узнал тебя -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
||||||
|
|||||||
skylex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 21.12.2008 Репутация: нет Всего: нет |
А в билдере как сделать?
|
|||
|
||||
bsa |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
skylex, легко - зайти в настройки проекта и удали все run-time packages, а в настройках линкера включи линковку со статическими библиотеками (кажется, static RTL, или что-то в этом духе).
Модератор: для вопросов по билдеру есть свой раздел. |
|||
|
||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |