Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT4] "Привет мир" молчит в ответ, не запускается, Не могу запустить программу на QT 
V
    Опции темы
programador
  Дата 25.11.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



Решил нормально изучить С++ и выбор остановил на QT. Скачал с тролтека qt-win-opensource-4.3.2-mingw. Первый проект сделал так как описано в руководстве. Успешно создался *.pro, Makefile, а после сборки под make -  *.exe и *.o (и Релиз и Дебаг состряпал на всякий случай). При компиляции и сборке не было ни ошибок, ни предупреждений. Вот только конфуз в том, что экзешник не запускается. Клоцаешь по нему, клоцаешь, а он не реагирует. Чуствую себя ламером, на грани депрессии smile. Как быть и что делать?
PM MAIL   Вверх
JackYF
Дата 25.11.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(programador @  25.11.2007,  16:03 Найти цитируемый пост)
а он не реагирует.

запусти из-под косноли, в cmd. И покажи листинг программы.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
programador
Дата 25.11.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



Из-под консоли не запустился и ничего не было написано. Листинг - стандартный пример из Ассистента:
Код

 #include <QApplication>
 #include <QPushButton>

 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);

     QPushButton hello("Hello world!");
     hello.resize(100, 30);

     hello.show();
     return app.exec();
 }


Файлы, соответственно, тоже такие же: hello.cpp, hello.pro, Makefile, Makefile.Debug, Makefile.Release - все создано автоматически, руками не правил. 
PM MAIL   Вверх
Любитель
Дата 25.11.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Мистика?  smile 

Запусти дебаг-версию из-под gdb - он OutputDebugString-и перехватывает (виндовый, конечно) и на консоль выводит.


--------------------
PM MAIL ICQ Skype   Вверх
JackYF
Дата 25.11.2007, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Кстати, а собрана ли сама QT?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
archimed7592
Дата 25.11.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Qt/bin в PATH или ты каждый раз ручками пишешь путь к qmake?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
programador
Дата 28.11.2007, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



Цитата(JackYF @  25.11.2007,  17:03 Найти цитируемый пост)
Кстати, а собрана ли сама QT? 

Если подразумевается выполнение qtvars.bat compile_debug, то да. Прописывал соответсвующие пути в переменные окружения. (archimed7592 - в том числе и PATH.) Но при этом, что интересно, MinGW работал как и полагалось (утилита make работала и работает, а вот qmake - только через указание пути).
После того как деинсталлировал все, что имеет отношение к QT, имеет в своем составе MinGW и make. С последующей новой установкой Тролтековских продуктов, проги все же заработали (до этого не работало даже то, что лежало в демо и примерах). Но возникла другая проблемма - неправильно работает make. Скриншот во вложении. 
Что я неверно настраиваю? Чуствую, что делаю дилетантскую ошибку, но оправдываю себя тем, что никогда таким не занимался smile (компилировал или сразу из-под RAD, которая сама все настраивала, либо ограничивался прописанием CLASSPATH в Java). А тут решил настоящим программистом себя ощутить  smile  smile .

Присоединённый файл ( Кол-во скачиваний: 25 )
Присоединённый файл  ScreenShot.png 3,94 Kb
PM MAIL   Вверх
archimed7592
Дата 28.11.2007, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Цитата(programador @  28.11.2007,  01:51 Найти цитируемый пост)
Но возникла другая проблемма - неправильно работает make.

make работает правильно smile.

1. Создай пустую папку.
2. Создай в ней файл main.cpp с содержимым
Код
 #include <QApplication>
 #include <QPushButton>
 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QPushButton hello("Hello world!");
     hello.resize(100, 30);
     hello.show();
     return app.exec();
 }

3. Запусти консоль.
4. Перейди в ней в созданную тобой папку.
5. Напиши
Код
qmake -project
qmake
mingw32-make

6. Напши release\<имя папки>.exe
7. Радуйся.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
programador
Дата 28.11.2007, 03:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



Хе, вывалило пару-тройку предупреждений, однако работает!  smile 
Спасибо smile , если не секрет - в чем секрет? smile Наверное ж не только в отсутсвующих пустых строчках в листинге и названии файла? Или как?
PM MAIL   Вверх
archimed7592
Дата 28.11.2007, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



Цитата(programador @  28.11.2007,  03:30 Найти цитируемый пост)
если не секрет - в чем секрет? smile

В том, что у тебя в этой папке было несколько файлов с кодом. Причём из них НЕ один содержал main. Сборка падала при линковке, ибо двух main'ов(как ф-ций с любым др. именем) быть не должно.

Точнее у тебя в той папке была другая папка helloQT - классическая ошибка новичка smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
programador
Дата 29.11.2007, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



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

классическая ошибка новичка

Приятно, что не меня одного ударили эти грабли.  smile 
PM MAIL   Вверх
archimed7592
Дата 29.11.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93



programador, всё немного проще, чем ты думаешь smile.
Когда ты запускаешь qmake -project, qmake анализирует всё папку и выдаёт правила для каждого файла, тип которого ему известен. Т.о., если ты будет писать *.pro вручную(а научиться делать это совсем несложно), то никаких "левых" файлов компилироваться не будет, соответственно и не будет никаких ошибок smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
archimed7592
Дата 29.11.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 11
Всего: 93




 ! 
archimed7592
Не забываем пользоваться галочкой "Пометить вопрос как решенный"!



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
programador
Дата 2.12.2007, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 12.4.2006

Репутация: нет
Всего: нет



Фокус-то, в том что вопрос нерешенный. smile Я так и не понял почему в самом начале не запускались исполняемые файлы, несмотря на то, что при компилировании не было ни ошибок, ни предупреждений. Я склонен считать, что это из-за нескольких дистрибутивов QT, что я установил в систему. Кроме MinGW были установлены пробные версии для VS2005 и QTopia (и еще Джава-вариант, но он не в счет). Возможно был какой-то конфликт или неопределенность при обращении к библиотекам или мало ли что... 
С другой стороны, что делать в таком случае (пусть даже "вслепую") понятно (переинсталлировать и переконфигурировать только то что нужно), значит, все-таки можно вопрос считать решенным.  smile 

P.S.: Впредь "галочку" обязуюсь ставить  smile 
PM MAIL   Вверх
tomolax
Дата 19.5.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 9.4.2008
Где: город на Неве

Репутация: нет
Всего: 1



Топик создавать не стала, проблема вроде аналогичная, может просто что-то я неправильно делаю. Помогите разобраться

Опиралась на ниже приведеные инструкции и книгу Бланшета 
Цитата(archimed7592)

1. Создай пустую папку.
2. Создай в ней файл main.cpp с содержимым
Код
 
 #include <QApplication>
 #include <QPushButton>
 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QPushButton hello("Hello world!");
     hello.resize(100, 30);
     hello.show();
     return app.exec();
 }

3. Запусти консоль.
4. Перейди в ней в созданную тобой папку.
5. Напиши
Код

qmake -project
qmake
mingw32-make

6. Напши release\<имя папки>.exe
7. Радуйся


Что получилось:
1. успешно создался *.pro файл (qmake -project)
2. успешно создались папки release, debug, tmp и файлы Makefile, Makefile.Debug, Makefile.Release (qmake)

После чего пошли ошибки. При mingw32-make выводит ошибку, но если честно думаю что это я не правильно что-то пишу.

все получилось. моя невнимательность


Это сообщение отредактировал(а) tomolax - 19.5.2008, 14:00
PM MAIL ICQ Jabber   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1043 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.