Консольное приложение 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 ответа
- Установите xterm (
sudo apt-get install xterm
) - Зайдите в настройки запуска проекта и отметьте "Запустить в терминале".
Теперь ваше консольное приложение будет использовать xterm, чтобы показать себя, но не сможет отладить. Другой - безопасный - способ увидеть вывод консоли - открыть "Application Output" (Alt+3
). Хотя это не может быть закрыто Ctrl+c
(вам придется использовать кнопку "Стоп" в QtCreator).
У меня уже несколько раз возникала эта проблема, и обычно это означает, что вам не хватает зависимости (что не редкость в Linux).
Я могу думать о двух вещах, которые вы можете сделать:
Запустите исполняемый файл из командной строки. Обычно он выводит сообщение об ошибке, которое может дать вам дополнительную информацию о том, в чем проблема на самом деле.
Если это не работает или вам нужна дополнительная информация, используйте
ldd
команда для проверки зависимостей:ldd < path to your executable >
Это отобразит все необходимые зависимости и их местоположение, а также сообщит вам, если он не сможет их найти.
Как только вы найдете отсутствующую зависимость (если это проблема), вы наверняка сможете установить ее с помощью
apt
или же
apt-get