Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: QT и c++  (Прочитано 4273 раз)

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

Оффлайн НеФормат

  • Автор темы
  • Участник
  • *
  • Сообщений: 117
  • Ubuntu 11.10
    • Просмотр профиля
    • Линукс по Русски
QT и c++
« : 25 Февраль 2012, 17:19:57 »
Привет, всем! Начал учить QT
Первый код:
(Нажмите, чтобы показать/скрыть)
Вводу g++ index.cpp -o index.bin
Выдаёт:
(Нажмите, чтобы показать/скрыть)
Пробовал ставить всякие библиотеки, не помогло
P.S. - В QtCretor то же самое  :o
Что делать?

Мой сайт -  http://linuxfanat.ru!
Могу помочь с PHP,CSS,Html

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: QT и c++
« Ответ #1 : 26 Февраль 2012, 03:02:53 »
index.cpp:2:24: fatal error: QApplication: Нет такого файла или каталога
compilation terminated.
...
Что делать?

1. ну так нет же такого файла!

что делать?
2. идти в дефаулт include (/usr/include) и убеждаться, что там нет такого файла...

3. что дальше делать? разбираться какой (qt3, qt4) установлен, установлен ли, и куда (prefix):
[olej@notebook c++]$ env | grep QT
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
QT_IM_MODULE=xim
QTLIB=/usr/lib/qt-3.3/lib
а потом убеждаться, что там такой файл действительно есть:
[olej@notebook include]$ ls /usr/lib/qt-3.3/include/qappl*
/usr/lib/qt-3.3/include/qapplication.h
а дальше правильно указывать в команде компиляции ;) ... да ещё и библиотеки Qt там же указать ;)...

4. у вас, скорее всего, qt4 - так ищите где и как он поставлен! - всё дело в путях.
« Последнее редактирование: 26 Февраль 2012, 03:40:42 от Olej »

Оффлайн RazrFalcon

  • O_o
  • Старожил
  • *
  • Сообщений: 3144
  • Zombie Mod
    • Просмотр профиля
    • Я на GitHub
Re: QT и c++
« Ответ #2 : 26 Февраль 2012, 10:39:27 »
Цитировать
Qt Cretor то же самое
Не может быть.

qt-3.3 - очень смешно, вы его его нарыли-то?
Gentoo + KDE, Official Windows Hater
Хотите помочь нашей вики: https://help.ubuntu.ru/wiki/fixme

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: QT и c++
« Ответ #3 : 26 Февраль 2012, 12:47:05 »
Цитировать
Qt Cretor то же самое
Не может быть.

qt-3.3 - очень смешно, вы его его нарыли-то?

qt3 - это может и очень смешно (кто понимает, или напротив, кто ничего не понимает) ... но только у меня в системе вообще всё, что относится к Qt не ставилось просто, мне оно не надо... то, что показано - это та часть, которая доставлялась по зависимостям с каким-то пакетом из KDE.

Я вам показал как и где искать проблемы с установленным (возможно) у вас Qt:
- ищите пути установки (то, что задаётся prefix при сборке пакета Qt, вами или, скорее, дстрибьюторами вашими)...
- указывайте (как -I, -L, -l) их в опциях gcc, make или в переменных окружения env.
 

Оффлайн VlaoMao

  • Активист
  • *
  • Сообщений: 308
  • ArchLinux - eMachines e725 && Nokia N950
    • Просмотр профиля
Re: QT и c++
« Ответ #4 : 26 Февраль 2012, 13:22:57 »
Можно пойти проще.
В папке с проектом
qmake -project
qmake
make
profit.

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: QT и c++
« Ответ #5 : 26 Февраль 2012, 13:27:14 »
Можно пойти проще.
В папке с проектом
qmake -project
qmake
make
profit.
конечно, это обычный способ сборки с Qt, но:
- для этого нужно создать проект;
- автор хочет это сделать просто компилятором GCC ... с наскоку - но повозиться с такой сборкой имеет смысл (1 раз ;)) для понимания что (в GCC) и откуда берётся.
 

Оффлайн VlaoMao

  • Активист
  • *
  • Сообщений: 308
  • ArchLinux - eMachines e725 && Nokia N950
    • Просмотр профиля
Re: QT и c++
« Ответ #6 : 26 Февраль 2012, 13:33:13 »
Для этого НЕ НУЖНО создавать проект, qmake его сам создаст.
После работы qmake в папке будет Makefile, который можно посмотреть/подправить/выучить для своих целей.
$ ls
main.cpp
$ qmake -project && ls
main.cpp  qt_ex.pro
$ qmake && ls
main.cpp  Makefile  qt_ex.pro
« Последнее редактирование: 26 Февраль 2012, 13:35:40 от VlaoMao »

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: QT и c++
« Ответ #7 : 26 Февраль 2012, 13:59:52 »
Для этого НЕ НУЖНО создавать проект, qmake его сам создаст.
Да, это я что-то ступил, уже несколько не смотрел в сторону Qt и со всем, что связано с KDE.
Тем более, то что вы подсказали, показывает как GCC использует специфические установки Qt.

Переписал я по-быстренькому программу нашего топик-спикера под свой "дремучий" ;) Qt:
#include "qapplication.h"
#include <qdialog.h>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QDialog  startDialog;

    startDialog.setMinimumWidth(200);
    startDialog.show();

    return app.exec();
}
Очень хорошо видно, как qmake подставляет дефаултные пути для -I и для -L :
[olej@notebook Qt]$ qmake -project
[olej@notebook Qt]$ ls
index.cc  Qt.pro
[olej@notebook Qt]$ qmake
[olej@notebook Qt]$ ls
index.cc  Makefile  Qt.pro
[olej@notebook Qt]$ make
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronou
g++  -o Qt index.o    -L/usr/lib/qt-3.3/lib -lqt-mt -lXext -lX11 -lm
[olej@notebook Qt]$ ls
index.cc  index.o  Makefile  Qt  Qt.pro
[olej@notebook Qt]$ ./Qt
^C

В qt4 будет то же, только с другими именами.

Оффлайн VlaoMao

  • Активист
  • *
  • Сообщений: 308
  • ArchLinux - eMachines e725 && Nokia N950
    • Просмотр профиля
Re: QT и c++
« Ответ #8 : 26 Февраль 2012, 14:25:00 »
Ну во-первых, Qt != KDE.
А во-вторых надо использовать не
#include "qapplication.h"
#include <qdialog.h>
А#include <QApplication>
#include <QDialog>
$ cat /usr/include/QtGui/QApplication
#include "qapplication.h"
Хотя вполне возможно, что на другой платформе содержимое файла QApplication будет другим, поэтому и надо подключать именно QApplication.
Хотя да, возможно в Qt3 и нет отдельного QApplication, есть qapplication.h, не думаю что сейчас кто-то ещё сильно пользуется Qt3.
« Последнее редактирование: 26 Февраль 2012, 14:30:07 от VlaoMao »

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: QT и c++
« Ответ #9 : 26 Февраль 2012, 14:56:17 »
Ну во-первых, Qt != KDE.
конечно Qt != KDE, но если кто-то живёт в другом DE, оконном окружении, например QNOME, да и все другие, то он и не пересекается никаким образом ни с Qt, ни с исполняющей системой Qt... а исполняющая система Qt, в таких случаях, и устанавливается (по зависимостям) при установке чего-то из ПО из комплекта KDE.

ведь в других DE/WM, как вы сами понимаете, есть масса других инструментов построения GUI, когда это нужно по-быстренькому что-то сделать: Tcl/Tk(wish), GTK, wxWidget и др. 

только таким образом Qt получается часто косвенно связано с KDE: где KDE - там Qt, а где KDE нет, то на таких рабочих местах часто и Qt нет. ;)

А во-вторых надо использовать не
#include "qapplication.h"
#include <qdialog.h>
А#include <QApplication>
#include <QDialog>
$ cat /usr/include/QtGui/QApplication
#include "qapplication.h"
Хотя вполне возможно, что на другой платформе содержимое файла QApplication будет другим, поэтому и надо подключать именно QApplication.
а вот это неверно!
/usr/include/QtGui - появится только тогда, когда вы специально установите средства разработки Qt, что-то типа пакета qt-develop, если этого не делать, то и каталога такого нет (как и входящих в него файлов).
а вот исполняющая система (инклуды, библиотеки) может устанавливаться с приложениями, и она присутствует всегда, вот те "qapplication.h", на которые именно и указывает -I опция при построении проекта.

Хотя да, возможно в Qt3 и нет отдельного QApplication, есть qapplication.h, не думаю что сейчас кто-то ещё сильно пользуется Qt3.
великое множество существующих и эксплуатируемых пакетов благополучно работают на Qt3, ничего чтоб особо существенного (не с точки зрения разработчика, а эксплуатации) Qt4 так и не принёс (например обещанной производительности), так что многие и многие давние пользователи Linux с появлением KDE4 от него отказались, а автоматом и от использования Qt4.

Оффлайн НеФормат

  • Автор темы
  • Участник
  • *
  • Сообщений: 117
  • Ubuntu 11.10
    • Просмотр профиля
    • Линукс по Русски
Re: QT и c++
« Ответ #10 : 26 Февраль 2012, 16:58:48 »
Ну во-первых, Qt != KDE.
конечно Qt != KDE, но если кто-то живёт в другом DE, оконном окружении, например QNOME, да и все другие, то он и не пересекается никаким образом ни с Qt, ни с исполняющей системой Qt... а исполняющая система Qt, в таких случаях, и устанавливается (по зависимостям) при установке чего-то из ПО из комплекта KDE.

ведь в других DE/WM, как вы сами понимаете, есть масса других инструментов построения GUI, когда это нужно по-быстренькому что-то сделать: Tcl/Tk(wish), GTK, wxWidget и др. 

только таким образом Qt получается часто косвенно связано с KDE: где KDE - там Qt, а где KDE нет, то на таких рабочих местах часто и Qt нет. ;)

А во-вторых надо использовать не
#include "qapplication.h"
#include <qdialog.h>
А#include <QApplication>
#include <QDialog>
$ cat /usr/include/QtGui/QApplication
#include "qapplication.h"
Хотя вполне возможно, что на другой платформе содержимое файла QApplication будет другим, поэтому и надо подключать именно QApplication.
а вот это неверно!
/usr/include/QtGui - появится только тогда, когда вы специально установите средства разработки Qt, что-то типа пакета qt-develop, если этого не делать, то и каталога такого нет (как и входящих в него файлов).
а вот исполняющая система (инклуды, библиотеки) может устанавливаться с приложениями, и она присутствует всегда, вот те "qapplication.h", на которые именно и указывает -I опция при построении проекта.

Хотя да, возможно в Qt3 и нет отдельного QApplication, есть qapplication.h, не думаю что сейчас кто-то ещё сильно пользуется Qt3.
великое множество существующих и эксплуатируемых пакетов благополучно работают на Qt3, ничего чтоб особо существенного (не с точки зрения разработчика, а эксплуатации) Qt4 так и не принёс (например обещанной производительности), так что многие и многие давние пользователи Linux с появлением KDE4 от него отказались, а автоматом и от использования Qt4.


Спасибо, помогло =)

Мой сайт -  http://linuxfanat.ru!
Могу помочь с PHP,CSS,Html

Оффлайн VlaoMao

  • Активист
  • *
  • Сообщений: 308
  • ArchLinux - eMachines e725 && Nokia N950
    • Просмотр профиля
Re: QT и c++
« Ответ #11 : 26 Февраль 2012, 17:09:53 »
Ладно, пофиг на все выкладки, всё равно спор ни к чему не приведёт.
Цитировать
а вот это неверно!
/usr/include/QtGui - появится только тогда, когда вы специально установите средства разработки Qt, что-то типа пакета qt-develop, если этого не делать, то и каталога такого нет (как и входящих в него файлов).
а вот исполняющая система (инклуды, библиотеки) может устанавливаться с приложениями, и она присутствует всегда, вот те "qapplication.h", на которые именно и указывает -I опция при построении проекта.
Может в Ubuntu и так, не скажу. Скажу точно насчёт ArchLinux:
$ pkgfile `ls /usr/include/QtGui/*`
extra/qt
QtCreatora не видно, все файлы в этом каталоге принадлежат пакету qt. Но опять же, повторюсь, что это актуально только для ArchLinux, в Ubuntu всё может быть по-другому, поэтому я и писал про спор, возможно просто мы друг друга не поняли.

 

Страница сгенерирована за 0.071 секунд. Запросов: 25.