debian.org / О Debian Где взять Debian Поддержка Уголок разработчика Новости Wiki

Автор Тема: [Решено] В Qt Creator 4.2.0 в режиме отладки не запускается терминал  (Прочитано 763 раз)

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

Оффлайн mkudritsky

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 17
Программирую на 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
Spoiler: ShowHide

QT += core
QT -= gui

CONFIG += c11

TARGET = Matr
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.c

Текст файла программы main.c
Spoiler: ShowHide

#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;
}
« Последнее редактирование: 20 Апрель 2019, 15:33:40 от qupl »
 


Оффлайн mkudritsky

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 17
К сожалению, это первый совет, который я попробовал еще несколько месяцев назад.
Увы, не помогло...
З.Ы. Кстати, по-умолчанию ПО 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

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 4604
  • memento mori
  • Jabber: qupl@jabber.ru
Там пишут, что у приложения в настройках QtCreator должна стоять галка RunInTerminal. Она есть?  Режим отладки внешний/внутренний, тоже нормально всё выбрано?
doc

Оффлайн mkudritsky

  • Пользователь
  • *
  • Topic Author
  • Сообщений: 17
Спасибо!
Проблема решена!

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

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

Ура! Спасибо за помощь!
« Последнее редактирование: 20 Апрель 2019, 17:37:00 от mkudritsky »
 

Русскоязычное сообщество Debian GNU/Linux



Теги: debian 9.8 
 

[Решено] Matlab программирование и RS-232 port

Автор Fang

Ответов: 0
Просмотров: 1468
Последний ответ 02 Август 2013, 14:11:40
от Fang
[Решено] Python не обновляется до 3+ версии

Автор Fieryx

Ответов: 6
Просмотров: 1641
Последний ответ 09 Октябрь 2013, 00:38:33
от Olej
bash замена одиночного слеша на экранированный [РЕШЕНО]

Автор zCirill

Ответов: 0
Просмотров: 2869
Последний ответ 04 Июнь 2014, 21:29:47
от zCirill
[Решено] Python CGI не обрабатывает формы, но в целом работает

Автор agentgoblin

Ответов: 2
Просмотров: 2874
Последний ответ 26 Июнь 2015, 18:28:03
от agentgoblin
[РЕШЕНО]Debian 9 + ModX Revo 2.5.7

Автор Lord_Markus

Ответов: 0
Просмотров: 1067
Последний ответ 11 Август 2017, 11:44:54
от Lord_Markus