MinGW полностью прослушивается в NetBeans

0

Следующий код не вызывает ошибку:

    #include <cstdlib>
    #include <cstdio>
    #include <iostream>

    using namespace std ;

    int main ( int argc , char** argv )
    {
        int n ;
        cin >> n ;
        cout << n ;
        return 0 ;
    }

Тем не менее получить "RUN FAILED (значение выхода -1, 073,741,511, общее время: 46 мс") при запуске MinGW/Msys на Netbeans. Любые советы, как вернуться к Cygwin?

  • 0
    Это, вероятно, что-то с общими библиотеками / конфигурацией запуска. Можете ли вы запустить программу вручную?
  • 0
    пожалуйста, подробно "запустите программу вручную"
Показать ещё 6 комментариев
Теги:
netbeans
compiler-construction
cygwin
mingw

2 ответа

0

Я столкнулся с этой же проблемой (с кодом выхода -1, 073,741,511), поэтому, хотя заданный вопрос, я размещаю это здесь для всех, кто сталкивается с проблемой.

  1. Запустите исполняемый файл для программы вручную. Вы можете получить такую ошибку, как "точка входа в процедуру __gx_personality_v0 coud не будет находиться в динамической библиотеке libstdС++ - 6.dll". (OP подтвердил это в комментарии.)
  2. Файл.dll, упомянутый выше в сообщении об ошибке, либо не связан, либо связан неправильно. Правильная версия DLL, которая должна быть связана, является той, что находится в каталоге... \MinGW\bin. В Windows вы можете проверить связанный файл.dll, набрав в командной строке where libstdc++-6.dll; первый результат, который указан, будет связан с файлом. Если вы уже видите...\MinGW\bin\libstdС++ - 6.dll в качестве первого результата здесь, мое исправление ниже не поможет вам.
  3. Если вы видите сообщение "INFO: не удалось найти файлы для данного шаблона"., То... \MinGW\bin необходимо добавить к переменной% PATH%. (ОП уже подтвердил, что это не проблема).
  4. Проблема, с которой я столкнулась, заключалась в том, что у установленной мной программы была своя (вероятно устаревшая) версия libstdc++-6.dll, которая была в папке, также включенной в мою переменную% PATH%, впереди... \MinGW\bin, Это означало, что этот другой DLL файл собирался и привязывался во время выполнения. Это можно устранить, отредактировав переменную% PATH%, чтобы убедиться, что запись... \MinGW\bin опережает все остальные каталоги, которые также имеют версию DLL файла.

Изменить. Другой вариант - статически связать DLL с компиляцией программы или поместить копию правильной DLL в исполняемый каталог программы. Однако ни одно из этих исправлений не является "глобальным" и должно выполняться для каждого проекта отдельно.

Надеюсь это поможет!

0

Я рекомендую использовать MinGW Distro, если вы хотите разработать C++ в операционной системе Microsoft Windows. Он поставляется с довольно новой версией GCC и с библиотеками Boost.

Средство IDE NetBeans довольно разборчиво относится к настройкам среды сборки. Например, это не работает со всеми версиями make (у нас есть отдельный make.exe из MSYS и mingw32-make.exe из MinGW, например), и есть проблемы в отношении используемого Java Runtime Enviroment (JRE).

С настройками, показанными на следующем скриншоте, вы сможете создать свой пример с MinGW Distro и NetBeans 8. Я рекомендую не настраивать абсолютный путь к файлу make.exe а добавлять этот путь к переменной среды Microsoft PATH. В противном случае вы можете получить ошибки сборки.

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

Возможно, эти два сообщения в блоге помогают, если вы хотите использовать дистрибутив MinGW по умолчанию:

  1. Установка минимального GNU для Windows (MinGW)
  2. Настройка среды IDE NetBeans для минимального GNU для Windows (MinGW)

Надеюсь, это тоже поможет другим.


Не имеет отношения к вашему вопросу: Не используйте using namespace std:

#include <iostream>

int main(int argc, char** argv) {
  int n;
  std::cin >> n;
  std::cout << n;

  return 0;
}

Ещё вопросы

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