Консольное приложение Qt - Терминал не останется открытым [в Ubuntu]

Недавно я начал разрабатывать в Qt, но у меня возникла проблема с консольными проектами. Когда я запускаю свою программу (консольную программу), терминал открывается, а затем сразу же закрывается, поэтому я не вижу вывод.

Вот код, который я использую:

#include <QtCore/QCoreApplication>
#include <QDebug>
#include <iostream>

int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);

qDebug() << "In the stream";

return a.exec();
}

Я посмотрел в файле.pro моего проекта, и он, кажется, настроен правильно (он настроен на использование консоли с CONFIG += console). Я не уверен, почему окно терминала не остается открытым. Я пробовал добавлять system("PAUSE)

Это не работает однако. Я использую Ubuntu и настройки Qt Creator по умолчанию.

Когда я запускаю проект, я использую кнопку запуска по умолчанию, но я также попробовал кнопку отладки. Окно терминала все еще просто вспыхивает, а затем закрывается, прежде чем я вижу результат. Панель "Вывод приложения" у кнопки просто говорит, что она запускает приложение. Вот как выглядят мои настройки терминала в QtCreator: x-terminal-emulator -e (это по умолчанию)

Моя версия QtCreator 2.4.1

Может кто-нибудь сказать мне, как держать консоль / терминал открытым, чтобы я мог видеть qdebug() выход?

Спасибо

2 ответа

  1. Установите xterm (sudo apt-get install xterm)
  2. Зайдите в настройки запуска проекта и отметьте "Запустить в терминале".

Теперь ваше консольное приложение будет использовать xterm, чтобы показать себя, но не сможет отладить. Другой - безопасный - способ увидеть вывод консоли - открыть "Application Output" (Alt+3). Хотя это не может быть закрыто Ctrl+c (вам придется использовать кнопку "Стоп" в QtCreator).

У меня уже несколько раз возникала эта проблема, и обычно это означает, что вам не хватает зависимости (что не редкость в Linux).

Я могу думать о двух вещах, которые вы можете сделать:

  • Запустите исполняемый файл из командной строки. Обычно он выводит сообщение об ошибке, которое может дать вам дополнительную информацию о том, в чем проблема на самом деле.

  • Если это не работает или вам нужна дополнительная информация, используйте lddкоманда для проверки зависимостей:

              ldd < path to your executable >
    

Это отобразит все необходимые зависимости и их местоположение, а также сообщит вам, если он не сможет их найти.

Как только вы найдете отсутствующую зависимость (если это проблема), вы наверняка сможете установить ее с помощью aptили же apt-get

Другие вопросы по тегам