Скомпилированные исполняемые файлы Gcc выдают сообщение «Отказано в доступе»?

0

Я установил путь к gcc внутри dev-c. Он компилируется отлично и создает исполняемый файл, но он не запускает программу и сначала показывает окно сообщения (как показано на первом снимке), а затем выводит сообщение об ошибке на консоли


ЗАМЕТКА:

  1. Программа полностью работает нормально, производя вывод, если я запускаю программу, используя Dev-Cpp в моей системе, но когда я вызываю компилятор с помощью командной строки, я получаю эти упомянутые проблемы.
  2. Я использую Windows XP.
  3. Я также установил msys

Изображение 174551Изображение 174551


Обновления (из комментариев)

Изображение 174551

Я знаю, что dependancy walker говорит, что у меня проблемы с зависимостью, но если это так, то как Dev-CPP компилирует программу на моем компьютере? Как уже говорилось, Dev-Cpp умеет компилировать и запускать код, который записывается в его редактор. Мое лучшее предположение: gcc обнаруживает мою 32-битную операционную систему и добавляет некоторый переключатель в процесс компиляции Dev-Cpp например

gcc -something -something my_program.c

может ли кто-нибудь найти то, что something такое?

  • 0
    Файл a.exe действительно существует, поскольку вы не указали имя выходного файла во время компиляции.
  • 0
    да, exe существует, я даже пытался дважды щелкнуть по нему всего одной строкой printf, но я получаю это сообщение
Показать ещё 2 комментария
Теги:
gcc

2 ответа

2
Лучший ответ

Если вы внимательно посмотрите на столбец CPU в зависимости от отображения, вы увидите, что ваша программа была скомпилирована в виде двоичного кода x64. Похоже, что в вашей системе не установлена 64-разрядная версия Windows.

По-видимому, ваш gcc настроен на создание двоичных файлов x64 по умолчанию. Используйте -m32 чтобы получить ее для создания 32-битного двоичного кода x86.

  • 0
    спасибо ... ты узнал что- something , о something я просил: D
0

Эта ошибка может быть вызвана несколькими различными проблемами:

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, он будет работать нормально.

Удачи!

Источник: http://www.computerhope.com/issues/ch000726.htm

Ещё вопросы

Сообщество Overcoder
Наверх
Меню