Я установил путь к gcc
внутри dev-c
. Он компилируется отлично и создает исполняемый файл, но он не запускает программу и сначала показывает окно сообщения (как показано на первом снимке), а затем выводит сообщение об ошибке на консоли
Dev-Cpp
в моей системе, но когда я вызываю компилятор с помощью командной строки, я получаю эти упомянутые проблемы.
Я знаю, что dependancy walker
говорит, что у меня проблемы с зависимостью, но если это так, то как Dev-CPP компилирует программу на моем компьютере? Как уже говорилось, Dev-Cpp
умеет компилировать и запускать код, который записывается в его редактор. Мое лучшее предположение: gcc обнаруживает мою 32-битную операционную систему и добавляет некоторый переключатель в процесс компиляции Dev-Cpp
например
gcc -something -something my_program.c
может ли кто-нибудь найти то, что something
такое?
Если вы внимательно посмотрите на столбец CPU в зависимости от отображения, вы увидите, что ваша программа была скомпилирована в виде двоичного кода x64. Похоже, что в вашей системе не установлена 64-разрядная версия Windows.
По-видимому, ваш gcc настроен на создание двоичных файлов x64 по умолчанию. Используйте -m32
чтобы получить ее для создания 32-битного двоичного кода x86.
something
, о something
я просил: D
Эта ошибка может быть вызвана несколькими различными проблемами:
1) Файл поврежден, плох или отсутствует. 2) Файл не предназначен для вашей версии Windows. 3) Файл - это вирус, червь или другой вредоносный файл. 4) Аппаратная несовместимость
Я думаю, что мы, вероятно, можем исключить последние два, которые оставляют 1 и 2.
1) Поврежденный файл: это может произойти, если при создании exe вы оставляете важные файлы, необходимые для его работы. Это файлы, которые были бы в вашей среде dev (исходные файлы, файлы заголовков и т.д.). Если они не экспортируются должным образом, они могут вызвать эту проблему. Отсутствует файл: найдите файловую систему для a.exe. Перед запуском убедитесь, что он существует. Запуск его из среды dev не гарантирует его существования в вашей файловой системе.
2) Файл не предназначен для вашей версии окон: на самом деле это похоже на наиболее вероятную проблему. Например, если вы пишете программу для запуска в 64-разрядной версии Windows, она не будет работать, если у вас есть 32-разрядная машина. Кроме того, если вы используете новейшую (или новую) версию dev-c, она может по умолчанию создавать exe, предназначенную для Windows Vista, 7 или 8. Я считаю, что есть настройки где-то, где вы можете это изменить, но Я не уверен на 100%. Я не использовал dev-c. Просмотрите меню настроек/предпочтений/опций и посмотрите, сможете ли вы найти, какую версию он создает для exe. Я ожидаю, если вы измените его на XP, он будет работать нормально.
Удачи!
a.exe
действительно существует, поскольку вы не указали имя выходного файла во время компиляции.