[Решено] В Qt Creator 4.2.0 в режиме отладки не запускается терминал

Автор mkudritsky, 20 апреля 2019, 11:01:58

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mkudritsky

Программирую на C/C++ как сугубо прикладной программист.
Для разработки и отладки программ использую Linux с 2015 года. С 2015 по 2019 использовал клон Ubuntu - Runtu 14.04.1 LITE.

После установки Debian 9.8 на свои ноутбуки, установил и Qt со всеми обвязками командами:

# apt-get install qt5-default
# apt-get install qtcreator

и согласился с доустановкой всех запрошенных пакетов.

Что имеем в результате:
1. Все ранее отлаженные программы НОРМАЛЬНО компилируются, собираются  в файлы-программы и исполняются в терминале.
2. Но вот при попытке это все сделать в среде Qt Creator в режиме отладки - не вызывается окно терминала, чтобы я смог ввести данные на запрос консольной программы!
Поэтому затруднительно писать и отлаживать программы.
Можно только скомпилировать уже ранее отлаженное.

Что делал?
Гугл в поиске выдал, что в 2010-2011 годах такая проблема была. И надо ставить другую программу терминала.
Все перепробовал - ничего не помогает!

Поэтому выкидываю белый флаг и прошу помощи форумчан!

P.S. Привожу пример файла проекта и текст программы формирования матрицы. Злополучную размерность матрицы надо вводить в терминальном окне:
Файл проекта Matr.pro
Открыть содержимое (спойлер)


QT += core
QT -= gui

CONFIG += c11

TARGET = Matr
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.c

[свернуть]
Текст файла программы main.c
Открыть содержимое (спойлер)


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//---------------------------------------------------------------------------

int iRand() {
// Аналог rand() для юродиевых версий "любимой" Windows, где RAND_MAX=32767
   int iR=rand();
   if ( RAND_MAX == 32767 ) { // 32767=2**15-1
      iR <<= 15; // iR = iR*32768 (32768=2**15)
      int iL = rand();
      iR |= iL; // iR = rand()*(2**15)+rand;
   }
   return iR;
}
//---------------------------------------------------------------------------

int main() {
   int N; // Число городов коммивояжера
   FILE *Fdat;                // Файл с матрицей расстояний
   // Задание числа городов
   printf("Матрица для числа городов N = ");
   if ( !scanf("%d",&N) ) {
      printf("Не могу прочитать число городов N\n");
      return -1;
   }
   // Открытие существующего файла или создание нового файла
   if (( Fdat=fopen("Matr.txt", "wt") ) == NULL) {
      printf("Файл не удается открыть");
      return -1;
   }
   // Выдача максимального числа
   printf("Максимальное число генератора = %d\n", RAND_MAX);
   // Инициализация датчика случайных чисел
   srand(time(NULL));
   // Создание матрицы
   for (int i=0; i<N; i++) {
      for (int j=0; j<N-1; j++)
         fprintf(Fdat,"%d ", iRand()%400001);
      fprintf(Fdat,"%d\n", iRand()%400001);
   }
   // Закрытие файла с матрицей
   fclose(Fdat);
   // вывод общего числа маршрутов
   printf("Матрица сформирована!\n");
   return 0;
}

[свернуть]


mkudritsky

К сожалению, это первый совет, который я попробовал еще несколько месяцев назад.
Увы, не помогло...
З.Ы. Кстати, по-умолчанию ПО xterm не ставится в Debian.

Я пробовал не только xterm, но и lxterminal, и по-моему что-то другое...
Ничего не помогает! Даже под root заходил и там все пробовал запустить - по нулям.
Все симптомы одинаковы как на Debian 9.8 64bit, так и на Debian 9.8 32bit.
А именно в Qt Creator после запуска программы на счет в режиме отладки начинает мигать заголовок "3 Вывод приложения" и, если туда зайти, видно сообщение:
"Запускается /home/mike/ZHK_Matr/Matr..."
И все. Очевидно, что программа в терминале ожидает, когда я введу размерность матрицы.

P.S. 1. В Runtu 14.04.1 LITE я Qt ставил из *.deb файла с сайта разработчика - наверное, поэтому там таких проблем не было. Просто в Ubuntu в репозиториях какой-то совсем уж древний Qt находится.
А в Debian версии ПО из репозиториев меня устраивают. Да и они, очевидно, вылизаны от ошибок...
2. Уже несколько месяцев на мои вопросы не могут ответить на сайте программистов:
https://forum.sources.ru/index.php?showtopic=414410
Думал, может они Debian не используют или юзают Qt без консоли?

qupl

Там пишут, что у приложения в настройках QtCreator должна стоять галка RunInTerminal. Она есть?  Режим отладки внешний/внутренний, тоже нормально всё выбрано?
doc

mkudritsky

#4
Спасибо!
Проблема решена!

Мда... Без стакана тут не разберешься.
1. Итак, открываю проект и захожу в
Проекты -> Запуск -> Настройки запуска
И вижу, что там УСТАНОВЛЕНА галочка "Запускать в терминале"
Но, как я уже писал выше, терминал не открывается!

2. Снимаем галочку "Запускать в терминале".
Все сохраняем (Файл -> Сохранить все).
Опять устанавливаем галочку "Запускать в терминале".
Снова все сохраняем.
И (мистика) - терминал начинает открываться!

Ура! Спасибо за помощь!