Eclipse C++ видит вывод только при отладке

Я создал образец проекта С++ «Hello World» в eclipse, используя набор инструментов «cygwin GCC».

Проект компилируется и запускается. Проблема в том, что я не вижу свой вывод «Hello World» в консоли ниже.

Интересный факт: когда я запускаю свой проект в режиме «Отладка», я вижу вывод после выполнения:

    cout << "!!!Hello World!!!" << endl; 

Как я могу увидеть вывод своей консоли в простом «Режиме запуска»? Я использую Eclipse Juno...


person Ivelius    schedule 01.01.2013    source источник
comment
Вы случайно не используете 64-битный Eclipse?   -  person einpoklum    schedule 17.04.2013


Ответы (2)


Спасибо @einpoklum, по вашим ссылкам я нашел решение!

Обязательно запускайте Eclipse от имени администратора! Вот и все :)

Конечно, если это все еще не работает, обратитесь к ответу @einpoklum.

person Ivelius    schedule 18.04.2013
comment
На самом деле в этом нет необходимости. В конце концов, многие пользователи не могут использовать права администратора. Можете сказать, для чего именно они вам нужны? - person einpoklum; 18.04.2013
comment
Ну... я не совсем понимаю, зачем мне права администратора. Но это решает проблему. Нашел здесь: stackoverflow.com/a/9779984/930171 - person Ivelius; 18.04.2013
comment
Это только сдвигает проблему, а не решает ее, потому что права администратора на самом деле не нужны. Вам нужно запретить Eclipse или GCC или тому подобное пытаться что-то, что требует прав администратора. - person einpoklum; 18.04.2013
comment
Угу наконец. Спасибо за этот ответ. Было бы здорово не нуждаться в этом, но мне все равно, чтобы выяснить проблему с источником, как предполагают другие, я просто хочу, чтобы это работало. - person ian.shaun.thomas; 28.04.2013

Это широко известная проблема с несколькими возможными решениями.

  • Это может быть ваша переменная среды PATH. Убедитесь, что он содержит C:\Cygwin\bin или туда, куда вы установили Cygwin. Если это отсутствует, возможно, вы не сможете загрузить cygwin1.dll, а Eclipse не сообщает об этом достаточно хорошо.
  • Возможно, это связано с буферизацией вывода. Попробуйте добавить

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

    в начале вашей основной функции.

  • Некоторые люди предлагают попробовать 32-разрядную версию Затмение (и JRE). Я бы постарался не идти по этому пути...

person einpoklum    schedule 17.04.2013
comment
Я добавил C:\Cygwin\bin в свою переменную среды PATH, ничего не изменилось. Эти команды буфера тоже не помогли. Просто, чтобы прояснить ситуацию, я создаю новый проект C++ из шаблона (Hello World), используя цепочку инструментов cygwin. . - person Ivelius; 18.04.2013