Почему моя программа не запускается, если не установлена ​​Visual Studio 2008? - PullRequest
4 голосов
/ 08 декабря 2008

Я написал игру, в которой используются GLUT, OpenGL и FMOD. Проблема заключается в том, что двоичный файл не будет работать, если на компьютере не установлена ​​Visual Studio 2008.

Почему это?

Ответы [ 7 ]

11 голосов
/ 08 декабря 2008

Скорее всего, вы связываетесь с DLL-версиями среды выполнения C / C ++. Перейдите в свойства проекта -> C ++ -> Генерация кода и установите для библиотеки времени выполнения значение , а не , чтобы быть одним из видов "DLL".

Кроме того, вы можете ссылаться на среды выполнения DLL, но тогда вам придется перераспределить среду выполнения с вашим приложением.

MSDN имеет больше информации о различных аспектах развертывания приложений C ++: http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx

Кроме того, Dependency Walker (зависимость.exe) покажет, от каких библиотек зависит ваш исполняемый файл. Он также поставляется с некоторыми версиями Visual Studio.

5 голосов
/ 08 декабря 2008

Вы имеете в виду, почему Вторично распространяемый пакет Microsoft Visual C ++ 2008 (x86) необходим?

Этот пакет устанавливает среду выполнения компоненты C Runtime (CRT), Стандарт C ++, ATL, MFC, OpenMP и Библиотеки MSDIA. Для библиотек, которые поддержка параллельной модели развертывания (CRT, SCL, ATL, MFC, OpenMP) они установлен в родную сборку кэш, также называемый папкой WinSxS, на версии операционной системы Windows которые поддерживают бок о бок сборки.

Поскольку по умолчанию они установлены не во всех Windows, особенно в тех, которые поставлялись до VS 2008.

Даже для

cout << "Hello, World" << endl;

Вам нужна библиотека, которая в данном случае стандартная библиотека C ++.

3 голосов
/ 08 декабря 2008

Эта программа может помочь вам найти, что DLL (если таковые имеются) отсутствуют на компьютере, на котором он не будет работать

3 голосов
/ 08 декабря 2008

Добро пожаловать в удивительный мир развертывания приложений.

Запустите инструмент , зависит от вашего исполняемого файла, и он сообщит вам, какие DLL вам нужно также скопировать вместе с вашим EXE.

2 голосов
/ 08 декабря 2008

По умолчанию в Windows установлены только версии выпуска среды выполнения C и dll стандартной библиотеки C ++. Установка Visual Studio дополнительно установит отладочные версии.

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

1 голос
/ 08 декабря 2008

Попробуйте выполнить компиляцию в режиме выпуска и убедитесь, что на целевой машине установлены все необходимые библиотеки DLL. У меня это работает.

0 голосов
/ 08 декабря 2008

Есть ли у вас зависимости от отладочных библиотек?

...