2014-09-13 2 views
0

Я работаю в linux, и я использую code :: blocks в моем первом проекте C++. main.cpp:консольные приложения, не работающие над linux

#include <iostream> 
using namespace std; 

int main() 
{ 
    cout<<"Hello World"<< endl; 
    return 0; 
} 

проект был построен и отлажен хорошо. и он работает, но когда я следую по пути исполняемого файла и запускаю его из папки отладки, приложение не показывает ничего , в чем проблема и каково решение? (эта проблема только в консольных приложениях)

+2

Вы запустили его с терминала или дважды нажали на исполняемый файл? –

+0

Дважды щелкните по исполняемому файлу. –

+1

Проблема в том, что ваша программа заканчивается, а окно терминала закрывается, прежде чем вы получите возможность увидеть распечатанный результат. Запустите его с консоли (терминала) или поместите 'getchar()' перед 'return'. – jweyrich

ответ

1

Возможно, вы работаете на фоне MS-Windows.

В Windows, когда вы дважды щелкните консольную программу, система автоматически создает окно консоли и подключает стандартные входные и выходные потоки программы к этой консоли.

В Linux нет такой вещи, как «консольные программы» или «программы GUI». Есть только программы, которые происходят, чтобы читать/записывать стандартные потоки, программы, которые делают GUI, или делать то, и другое.

Вывод в том, что ваша программа, скорее всего, работает отлично найти, и INT печатает в стандартный выходной поток ...

Где это стандартный вывод приводит к? Это был бы другой вопрос ... но я все равно попытаюсь ответить. Он наследует стандартный вывод родительского процесса, то есть ваш «Диспетчер файлов». Если это происходит из терминала (маловероятно), вы увидите вывод там. Если он запускается из сеанса рабочего стола (вероятно), то это зависит от того, что сделал менеджер сеансов с STDOUT. Большинство из них перенаправляют его на скрытый файл в домашней папке. Вы можете попробовать запустить $ grep "Hello World" ~/.* и посмотреть, что произойдет.

Если вы хотите запустить окно терминала двойным щелчком, вы должны написать запись .desktop (например, Windows Shortcut) для программы и установить Terminal=true. Возможно, ваш «Файловый менеджер» уже имеет инструмент для автоматического создания файлов .desktop.

В качестве альтернативы вы можете написать сценарий оболочки, который запускает xterm, gnome-terminal, konsole ... и вашу программу внутри.

Смежные вопросы