Программа на C ++, написанная на Eclipse с использованием Windows и MinGW, не может отобразить вывод в виде консоли - PullRequest
14 голосов
/ 11 мая 2011

Я использую Windows 7 64bit.

Я установил eclipse версии 3.6.2, cdt и MinGW. У меня есть консольная программа C ++ в Eclipse следующим образом:

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    setbuf(stdout, NULL);

    for (int i = 0; i < 10000000; i++) {
        cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    }
    int val;
    cin >> val;

    return 0;
}

Если я запускаю эту консольную программу, она должна отображать Hello world в Console View в Eclipse, но ничего не отображается.

Если я захожу в папку отладки и запускаю exe-файл, он печатает на консоль.

Если я сделаю некоторую синтаксическую ошибку, то Eclipse Console View покажет что-то, например:

**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\hh.o ..\src\hh.cpp
..\src\hh.cpp: In function 'int main()':
..\src\hh.cpp:17:3: error: expected ';' before 'return'
Build error occurred, build is stopped
Time consumed: 255 ms.   

Почему ничего не отображается в представлении консоли Eclipse и как мне сделать так, чтобы моя консольная программа C ++ отображала вывод?

Ответы [ 13 ]

0 голосов
/ 05 ноября 2012

Только что добавил C: \ MinGW \ bin в переменную окружения 'Path' в Windows 7 64-bit. Теперь консоль выводит сообщения

0 голосов
/ 30 ноября 2011

У меня была проблема с моим eclipse-cdt, новым проектом C ++> hello world (cygwin gcc), щелкнул правой кнопкой мыши по exe-файлу, запустился как и ничего не показывалось на консоли.То же самое было и с проектом c.

Я видел, что моя версия Eclipse уже была 32-битной.

Я понял это, и вот (*) мое решение:

В eclipse cdt: release и debug есть несколько профилей компиляции.Профиль по умолчанию в eclipse cdt является отладочным.Итак, запуск exe с использованием «run as» не работает, вы должны запустить его с помощью «debug as».В моем случае я использовал действительно свежую установку cygwin с установленным gcc, но с gdb еще не установленным.Мне пришлось установить пакет gdb в cygwin с помощью cygwin-setup.Я перезапускаю exe, используя «debug as», и это сработало.

Я предполагаю, что вместо профиля отладки по умолчанию используется профиль выпуска, перестройка также работает, и я думаю, что то же самое с средой mingw.

0 голосов
/ 21 августа 2011

Для меня установка 32-битных версий Eclipse (Indigo 3.7) и 32-битной Java JDK / JRE не работала. Я использую гораздо более быстрое решение из Eclipse CDT / Пользователь / FAQ :

Цитата из Eclipse CDT / Пользователь / FAQ - Консоль Eclipse не показывает вывод в Windows :

Консоль Eclipse не показывает выходные данные в Windows In Eclipse CDT on Windows, стандартный вывод запускаемой или отлаженной программы полностью буферизирован, потому что он не подключен к консоли Windwos, а к труба. Смотрите ошибку 173732 для более подробной информации. Либо добавить fflush звонки после каждый printf или добавить следующие строки в начале основного функция:

setvbuf(stdout, NULL, _IONBF, 0); 
setvbuf(stderr, NULL, _IONBF, 0);
...