Ответ 1
Эта ошибка консоли была замечена в 64-разрядных версиях eclipse:
http://www.eclipse.org/forums/index.php?t=msg&th=197552&start=0&S=2a2b64e1f1404705c0214976bd477428
Обходной путь заключается в установке 32-битного затмения
У меня 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
Версии:
Поэтому он должен быть совместим с моим 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". У меня ничего нет на консоли.
Эта ошибка консоли была замечена в 64-разрядных версиях eclipse:
http://www.eclipse.org/forums/index.php?t=msg&th=197552&start=0&S=2a2b64e1f1404705c0214976bd477428
Обходной путь заключается в установке 32-битного затмения
Это сработало для меня на 64-разрядной установке Eclipse в Windows 7 с помощью MinGW:
Щелкните правой кнопкой мыши свой проект. Выберите "Свойства".
Выберите свойство "Run/Debug Settings" в левой части нового окна.
В правом окне нажмите на свой исполняемый файл, чтобы выделить (т.е. - Test.exe), и нажмите "Изменить".
На вкладке "Окружающая среда" нажмите "Создать"
Имя: PATH
Значение: Путь к вашему каталогу bin MinGW. (Для меня это было: C:\devcore\MinGW\bin
)
Нажмите "ОК" на всех окнах, чтобы закрыть.
Попробуйте снова запустить, он должен печатать выходные данные на экране.
Вам нужно настроить компоновщик Я использую 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++)
работает чистое решение. Вместо этого, чтобы установить это для каждого проекта, я обнаружил, что его можно настроить глобально:
В окне → Настройки- > C/С++ → Build → Environment Добавьте переменную для своего компилятора. например, я добавил: MINGW со значением "C:\MinGW\bin"
Я столкнулся с той же проблемой из-за нескольких установок 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.
Вы пытались выполнить eclipse.exe с правами администратора? это сработало для меня!
Если эта проблема возникла на 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, а также для терминала командной строки.
Или установите опцию компоновщика -static
.
Работает для меня как минимум.