Eclipse CDT с использованием MinGW не выводится в консоли - PullRequest
37 голосов
/ 09 августа 2010

У меня Windows 64-битный ПК, и я пытаюсь установить бесплатную C ++ IDE, поэтому я решил установить Eclipse Helios с CDT.

Для g ++, make и gdb я установил msys и mingwв соответствии с этим руководством: http://wiki.wxwidgets.org/HowTo:_Install_MSYS_and_MinGW_for_use_with_Eclipse_CDT

Версии:

  • make: GNU make 3.81
  • g ++: 4.5.0
  • gdb: 7.1

Так что он должен быть совместим с моим 64-битным процессором.

Однако, когда я пытаюсь запустить очень простую программу с eclipse, я ничего не вижу на консоли.Исходный код:

#include <iostream>

 using namespace std;

 int main()
 {
    int i;

    cout << "Enter an integer: " << endl;
    cin >> i;
    cout << endl << "i is " << i << endl;

    return 0;
 }

Сборка в порядке, и когда я запускаю .exe с помощью команды (консоль Windows), поведение соответствует ожидаемому.Но с консолью Eclipse я ничего не вижу с run, а с отладкой вывод просто: «Введите целое число:», затем, когда я набираю число и нажимаю enter, он ничего не делает.

Кто-нибудь знает, какисправить это, пожалуйста?

Спасибо,

Гийома

PS: я использую набор инструментов "Linux GCC", с "MinGW GCC" у меня вообще ничего нет в консоли.

Ответы [ 9 ]

139 голосов
/ 11 мая 2011

Это сработало для меня на 64-битной установке Eclipse в Windows 7 с использованием MinGW:

Щелкните правой кнопкой мыши по вашему проекту.Выберите «Свойства».

Выберите свойство «Параметры запуска / отладки» в левой части нового окна.

В правом окне щелкните свой исполняемый файл, чтобы выделить его (например, - Тест.exe) и нажмите «Изменить».

На вкладке «Среда» нажмите «Создать»

Имя: PATH Значение: Путь к каталогу бина MinGW .(Для меня это было: C:\devcore\MinGW\bin)

Нажмите «ОК» во всех окнах, чтобы закрыть.

Попробуйте снова запустить, выводит вывод на экран.

8 голосов
/ 27 июня 2013

Вам нужно настроить компоновщик Я использую MinGW.

Выполните следующие шаги.

Goto Project > Properties > C/C++ Build > Settings > Tool Settings (Tab) > MinGW C++ Linker (Option) > Add Command (g++ -static-libgcc -static-libstdc++)   (default command is only g++)
7 голосов
/ 05 июня 2012

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

В Window -> Preferences-> C / C ++ -> Build -> Environment Добавить переменную для вашего компилятора.Например, я добавил: MINGW, со значением "C: \ MinGW \ bin"

5 голосов
/ 10 ноября 2010

Эта консольная ошибка была замечена в 64-битных версиях Eclipse:

http://www.eclipse.org/forums/index.php?t=msg&th=197552&start=0&S=2a2b64e1f1404705c0214976bd477428

Обходной путь - установить 32-битное Eclipse

2 голосов
/ 22 января 2015

Я столкнулся с той же проблемой из-за нескольких установок gcc на одном ПК.Но решение Грега сработало только частично для меня.

В моем случае в приложении явно не было сброса.В то время как программы на C ++ часто используют std::cout << ... << std::endl, где endl выполняет сброс, моя программа использовала фактический C-вывод, такой как обычный printf.printf можно увидеть непосредственно при запуске программы в окне cmd.Однако в консоли затмения они отсутствовали.Следовательно,

fflush(stdout);

после того, как printf сделал это для меня.Это может быть проблемой в реализации консоли eclipse.Наверное, поэтому для некоторых людей исправление пути не сработало.

Альтернативное решение вместо установки PATH в настройках «Выполнить» - это запустить полное затмение с помощью пакетного файла, который выглядит по сути какэто:

set PATH=<mymingwlocation>\bin;%PATH%
start <myeclipselocation>\eclipse.exe

Тогда любая конфигурация запуска будет использовать правильное расположение MingW по умолчанию.Это также может исправить другие проблемы, которые могут возникнуть при использовании неправильного gcc.

1 голос
/ 19 января 2017

Была ли эта проблема в 64- / 32-битном Eclipse Kepler CDT для работы с утилитой openCV / wxWidgets, Win7, с использованием MinGW для сборки.

Если кто-то сталкивался с этим во время возникновения этой проблемы и работает с openCV, вы уже будете знать, что в Интернете есть много устаревших инструкций по сборке / установке openCV.

Мне нужно было зайти в «Настройки сборки» -> «Линкер» -> «Разное», и внутри поля ввода текста «Флажки компоновщика» введите -Wl,--subsystem,windows -mwindows Однако это отключает вывод cout на терминал командной строки в Windows.

Дальнейшее копание выглядит преднамеренно, очевидно, -mwindows включает в себя направление STDOUT от командной строки специально к GUI-подобному приложению.

Кроме того, удаление -mwindows и просто уход в -Wl,--subsystem,windows решает задачу перенаправления STDOUT в любом случае из командной строки.

Теперь обратите внимание, я еще ничего не создал за пределами программы hello world, включающей wxWidgets и openCV, поэтому я не собираюсь делать нарезку в части графического интерфейса, поэтому я не знаю, эта функциональность теперь будет нарушена или если она будет распечатана в объект GUI, а также в терминал командной строки.

1 голос
/ 06 февраля 2012

Вы пытались запустить eclipse.exe с правами администратора ?? у меня это сработало!

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

Добавьте переменную PATH (PATH = "ваш путь к каталогу MinGW / bin") в ваш проект C ++ с помощью команды «Выполнить» -> «Выполнить конфигурации» -> на вкладке «Среда»

enter image description here

0 голосов
/ 15 июня 2011

Или установите параметр компоновщика -static. У меня работает как минимум.

...