2010-08-09 3 views
37

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

Для г ++ сделать и GDB я установил MSYS и MinGW в соответствии с этой обучающей программы: http://wiki.wxwidgets.org/HowTo:_Install_MSYS_and_MinGW_for_use_with_Eclipse_CDT

В версии:

  • марка: GNU Make 3,81
  • г ++: 4.5.0
  • gdb: 7.1

Поэтому он должен быть совместим с мой 64-битный процессор.

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

#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 я ничего не вижу при запуске и с отладочной выводом просто: «Введите целое число:», а затем, когда я ввожу число и попадаю в него, он ничего не делает.

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

Спасибо,

Гийом

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

+0

Испытывая такую ​​же проблему на 32-битном индиго; Решение purlogic работало. –

ответ

5

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

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

Обходной путь для установки 32-разрядное затмить

+3

Может произойти в 32-битном Indigo, а также попробовать решение purlogic ниже. –

+1

см. @purlogic ответ - это хорошее решение! –

134

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

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

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

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

На вкладке окружающей среды, нажмите кнопку "Создать"

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

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

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

+0

Огромное спасибо. –

+0

Большое вам спасибо, я устал запускать .exe самостоятельно –

+6

Отлично! Как ты это нашел? Вы создатель ошибок? :-) Это меня смущает много, когда в режиме отладки и команды это нормально. +1 –

0

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

1

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

7

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

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

+0

Я сделал это, когда-то это работает, когда-то это не так. Я использую Eclipse Juno. – ikel

+0

Итак, где же раствор purlogic ?! не может найти его –

8

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

Работал для меня. Отличная работа. – TheNotMe

+0

Только это работало для меня на Windows 64bit –

2

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

В моем случае флеш не был выполнен явно в приложении. В то время как программы на C++ часто используют 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.

+0

fflush (stdout) ---- Был ключ. Отлично. Благодаря! –

1

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

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

Один я был идти построить Настройки -> Linker -> Разное и внутри флагов ввода текста окно Linker, введите -Wl,--subsystem,windows -mwindows Однако, это отключает COUT от вывода в командной строке терминала в окнах.

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

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

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