Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа не запускается на другом компьютере. 
V
    Опции темы
Lazin
Дата 24.10.2008, 12:29 (ссылка) |    (голосов:19) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 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)". После перекомпиляции, несем программу на любую машину и запускаем.user posted image

Добавлено @ 12:38
ps
для 2008-й студии нужно использовать Microsoft Visual C++ 2008 Redistributable Package (x86/IA64) smile 

Это сообщение отредактировал(а) Lazin - 24.10.2008, 13:13
PM MAIL Skype GTalk   Вверх
JackYF
Дата 24.10.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Следует заметить, что Visual Studio - не единственная среда разработки smile
А так - спасибо за старания.




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Lazin
Дата 24.10.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



просто спрашивают в основном про нее
PM MAIL Skype GTalk   Вверх
bsa
Дата 24.10.2008, 13:23 (ссылка) |   (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Есть еще универсальный способ (которым пользуюсь я), который подходит и к другим средам программирования (в т.ч. BCB, Delphi и пр.). Для этого понадобится какая-нибудь программа для просмотра содержимого бинарных файлов. Я использую вьюер входящий в состав Total Commander.
Итак, открываем полученный файл exe с помощью вьюера, и ищем по ".DLL" (без кавычек и учета регистра) или другому расширению (например, ".BPL" для BCB), в зависимости от того, на что ругается программа. Будут находиться всякие библиотеки, в т.ч. и стандартные (kernel32.dll, user32.dll и пр.) и не очень. Последние нужно скопировать в дистрибутив. затем ту же операцию повторить для всех библиотек... и так до тех пор, пока не будут найдены все зависимости...
PM   Вверх
Lazin
Дата 24.10.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



bsa, действительно так можно делать, а я и не знал smile 
PM MAIL Skype GTalk   Вверх
Ln78
Дата 24.10.2008, 15:15 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: нет
Всего: 15



Цитата(bsa @  24.10.2008,  14:23 Найти цитируемый пост)
 Я использую вьюер входящий в состав Total Commander.

А я depends (Dependency Walker). Не знаю, как в Total Commander, а здесь такого рода ошибки выдаются наглядно.
PM MAIL   Вверх
Rickert
Дата 24.10.2008, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



+тыща.

Модераторы, думаю эту тему  стоит закрепить отдельно? smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
JackYF
Дата 25.10.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Закрепил тему.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Keler
Дата 26.10.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 14.9.2008

Репутация: нет
Всего: нет



Для 2008 студии только установка Microsoft Visual C++ 2008 Redistributable Package (x86/IA64)?Или есть альтернатива?
PM MAIL ICQ   Вверх
Lazin
Дата 30.10.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



насколько я знаю разницы, в этом плане, между 2008-й и 2005-й студией нет
PM MAIL Skype GTalk   Вверх
Microsoft
Дата 3.11.2008, 19:36 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Цитата

Заходим в опции проекта, находим там опции компилятора (C/C++ -> Code Generation), и меняем параметр Runtime Library с "Multi Threaded DLL (/MD)" на "Multi Threaded (/MT)".


При компиляции выдаёт:
Код

1>------ Build started: Project: SortTest, Configuration: Release Win32 ------
1>Compiling...
1>cl : Command line error D8016 : '/MT' and '/clr:pure' command-line options are incompatible
1>Build log was saved at "file://d:\КПІ\АкР\(1) АСД\Visual Studio 2008\SortTest\SortTest\Release\BuildLog.htm"
1>SortTest - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

КАК ЭТО ИСПРАВИТЬ??? ГДЕ ОТКЛЮЧИТЬ "/clr:pure" ??? smile 

( * У меня Microsoft Visual Studio 2008)

Это сообщение отредактировал(а) Microsoft - 3.11.2008, 20:42
PM MAIL ICQ Skype   Вверх
jonie
Дата 19.11.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



кроме depends (входящей в состав VS) есть утилита dumpbin
использовать ее примерно так:
Код

dumpbin /IMPORTS file.exe

покажет импортные библиотеки и функции (хотя не умеет делать глубокого сканирования, как, например, depends)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Annihilator
Дата 19.11.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: 1
Всего: 3



Цитата(Microsoft @ 3.11.2008,  23:36)
Цитата

Заходим в опции проекта, находим там опции компилятора (C/C++ -> Code Generation), и меняем параметр Runtime Library с "Multi Threaded DLL (/MD)" на "Multi Threaded (/MT)".


При компиляции выдаёт:
Код

1>------ Build started: Project: SortTest, Configuration: Release Win32 ------
1>Compiling...
1>cl : Command line error D8016 : '/MT' and '/clr:pure' command-line options are incompatible
1>Build log was saved at "file://d:\КПІ\АкР\(1) АСД\Visual Studio 2008\SortTest\SortTest\Release\BuildLog.htm"
1>SortTest - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

КАК ЭТО ИСПРАВИТЬ??? ГДЕ ОТКЛЮЧИТЬ "/clr:pure" ??? smile 

( * У меня Microsoft Visual Studio 2008)

Смотри

Балмер! Я узнал тебя  smile 


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
skylex
Дата 21.12.2008, 15:10 (ссылка)    | (голосов:8) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 21.12.2008

Репутация: нет
Всего: нет



А в билдере как сделать?
PM MAIL   Вверх
bsa
Дата 21.12.2008, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



skylex, легко - зайти в настройки проекта и удали все run-time packages, а в настройках линкера включи линковку со статическими библиотеками (кажется, static RTL, или что-то в этом духе).
Модератор: для вопросов по билдеру есть свой раздел.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1804 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.