Почему моя программа не запускается, если не установлена Visual Studio 2008?
-
20-08-2019 - |
Вопрос
Я написал игру, которая использует GLUT, OpenGL и FMOD.Проблема в том, что двоичный файл не будет запускаться, если на компьютере не установлена Visual Studio 2008.
Почему это происходит?
Решение
Скорее всего, вы ссылаетесь на DLL-версии среды выполнения C / C ++.Перейдите в раздел свойства проекта -> C ++ -> Генерация кода и установите для библиотеки времени выполнения значение не быть одним из видов "DLL".
В качестве альтернативы вы можете ссылаться на среды выполнения DLL, но тогда вам придется распространять среду выполнения вместе с вашим приложением.
MSDN содержит больше информации о различных аспектах развертывания приложений на C ++: http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx
Также, Средство устранения зависимостей (depends.exe) покажет, от каких библиотек зависит ваш исполняемый файл.Он также поставляется с некоторыми версиями Visual Studio.
Другие советы
Ты имеешь в виду, почему Распространяемый пакет Microsoft Visual C++ 2008 (x86) нужен?
Этот пакет устанавливает среду выполнения компоненты среды выполнения C (CRT), Стандартные библиотеки C ++, ATL, MFC, OpenMP и MSDIA.Для библиотек, которые поддерживают модель параллельного развертывания (CRT, SCL, ATL, MFC, OpenMP) они устанавливаются в собственную сборку кэш, также называемый папкой WinSxS, в версиях операционной системы Windows которые поддерживают параллельные сборки.
Потому что они установлены не во всех Windows по умолчанию, особенно в тех, которые поставлялись до версии 2008.
Даже для
cout << "Hello, World" << endl;
Вам нужна библиотека, которая в данном случае является стандартной библиотекой C ++.
Добро пожаловать в удивительный мир развертывания приложений.
Запустите инструмент зависит на вашем исполняемом файле, и он сообщит вам, какие библиотеки DLL вам также нужно скопировать вместе с вашим EXE.
Эта программа может помочь вам найти, какие библиотеки DLL (если таковые имеются) отсутствуют на компьютере, на котором он не будет запускаться
По умолчанию в Windows устанавливаются только выпускные версии среды выполнения C и библиотеки DLL стандартной библиотеки C++.Установка Visual Studio приведет к дополнительной установке отладочных версий.
Убедитесь, что версия, которую вы развертываете, полностью собрана в режиме выпуска.
Попробуйте выполнить компиляцию в режиме выпуска и убедитесь, что все необходимые библиотеки DLL установлены на целевом компьютере.У меня это работает.
Есть ли у вас зависимости от библиотек отладки?