Подтвердить что ты не робот

Eclipse CDT с использованием MinGW не выводится в консоли

У меня 64-разрядный ПК с Windows 7, и я пытаюсь установить бесплатную среду С++, поэтому я решил установить 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 я ничего не вижу при запуске и с отладкой: "Введите целое число:", затем, когда я ввожу число и нажимаю Enter, он ничего не делает.

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

Спасибо,

Гийом

PS: Я использую toolchain "Linux GCC", с "MinGW GCC". У меня ничего нет на консоли.

4b9b3361

Ответ 2

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

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

Выберите свойство "Run/Debug Settings" в левой части нового окна.

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

На вкладке "Окружающая среда" нажмите "Создать"

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

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

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

Ответ 3

Вам нужно настроить компоновщик Я использую 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++)

Ответ 4

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

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

Ответ 5

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

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

fflush(stdout);

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

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

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

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

Ответ 6

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

Ответ 7

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

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

Один из них состоял в том, чтобы перейти в "Настройки сборки" → "Линкера" → "Разное" и в поле ввода текста "Флаги флажка", введите       -Wl,--subsystem,windows -mwindows Однако это отключает cout от вывода на терминал командной строки в окнах.

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

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

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

Ответ 8

Или установите опцию компоновщика -static. Работает для меня как минимум.