2013-09-09 2 views
0

Я создал файл cpp с помощью Microsoft Visual Studio 2010 и Allegro. Он отлично работает в интерфейсе Visual Studio, но когда я скомпилирую его в exe, он говорит:Файл CPP запускается, но не работает при компиляции в exe

«Программа не может запускаться, поскольку ali-5.0.10-monolith-md-debug.dll отсутствует в ваш компьютер. Попробуйте переустановить программу, чтобы устранить эту проблему ».

Я запускаю exe на том же компьютере, который я использовал для написания кода и отладки, поэтому это не должно быть ошибкой отсутствующей dll. Должно ли это? Это не имеет смысла для меня .... Я скомпилировал другие exes раньше, и они запускаются на других компьютерах, и Allegro работает отлично, пока это файл cpp, но когда файл Allegro запускается как exe , он говорит, что у меня нет монолитной вещи.

Почему файл не работает как exe, но не cpp?

+3

Скорее всего, Visual Studio предоставляет путь, который содержит 'allegro-5.0.10-monolith-md-debug.dll' где-то, поэтому его запуск в среде IDE может успешно загрузить его. Простое решение - найти недостающую dll на вашей машине и скопировать ее в том же месте, что и ваш exe. – greatwolf

+0

Когда вы запускаете программу в среде IDE, рабочий каталог по умолчанию или где он загружает файлы DLL, совпадает с тем, где находится проект. Если вы перейдете в каталог отладки или выпуска и дважды щелкните по нему, то рабочий каталог будет каталогом отладки или выпуска, и, скорее всего, не там, где требуется DLL. –

+0

Как отмечали другие, это вопрос необходимых файлов .dll, которые должны находиться в пути поиска для DLL. Подробнее о пути поиска для DLL см. В разделе «Поиск DLL в окнах» (http://stackoverflow.com/questions/2463243/dll-search-on-windows). – Simon

ответ

0

Это то, что работает для меня:

Когда в Configuration Properties -> Отладка - Добавить PATH=c:\allegro\bin;%PATH% в переменной окружения.

У меня была такая же ошибка, программа говорила мне, что она не может найти монолитный DLL-файл. То, что я заметил, вместо PATH=c:\allegro\bin;%PATH% Я положил PATH=c:\allegro\bin:%PATH%. Разница не так проста.

Я поставил : вместо того, ; между бункером и% PATH%

это была легкая ошибка, однако это вызвало у меня около 3 часов душевного исправить.