невозможно скомпилировать программу на dev-c ++? - PullRequest
0 голосов
/ 15 сентября 2018

Загрузка новой версии исправила мою проблему, спасибо за помощь.

Я не могу скомпилировать свою программу и понятия не имею, почему? Я искал довольно трудно найти причину, почему это происходит безрезультатно. Я просто пытаюсь запустить пример по умолчанию, который dev-c ++ дает вам , это то, что он выплевывает Это журнал компиляции

Compiler: Default compiler
Building Makefile: "C:\Users\alex\Desktop\C++\test2\Makefile.win"
Executing  make...
make.exe -f "C:\Users\alex\Desktop\C++\test2\Makefile.win" all
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"   

make.exe: *** [main.o] Error -1073741819

Execution terminated

1 Ответ

0 голосов
/ 15 сентября 2018

Я перевел -1073741819 в шестнадцатеричное число (с помощью калькулятора Windows):

-1073741819 = 0xC0000005

Есть таблица всех NTSTATUS Values ​​на MSDN.Соответствующая строка:

0xC0000005 STATUS_ACCESS_VIOLATION

Инструкция в 0x% 08lx ссылается на память в 0x% 08lx.Память не может быть% s.

Похоже, что OP g++ каким-то образом поврежден, поскольку мне кажется, что make.exe сообщает код выхода -1073741819 из g++.

За 20 лет профессионального опыта у меня были редкие случаи, когда определенный неправильный код C ++ приводил к сбою моего компилятора (вместо того, чтобы просто сообщать об ошибке).Это больше не происходило годами.

Пример кода OP

#include <cstdlib>
#include <iostream>

using namespace std;

int name(int argc, char *argv[])
{
  system("PAUSE");
  return EXIT_SUCCESS;
}

выглядит ИМХО слишком невинным, чтобы вызвать такую ​​ошибку компилятора, как упоминалось выше.

Итак,Я согласен с советом Юнноша:

Попробуйте g++ --version на консоли (например, cmd.exe).а) Проверка g++ вообще работает.б) Посмотрите, не слишком ли устарела версия.

Вы также можете проверить, не случайно ли случайно смешаны параллельные установки инструментов с одинаковыми именами.Это может произойти, например, из-за наличия конфликтующих мест в переменной среды PATH.

...