Russian Qt Forum

Qt => Общие вопросы => Тема начата: Azathoth от Май 12, 2006, 04:04



Название: Qt 4.1.1, qmake и .pri
Отправлено: Azathoth от Май 12, 2006, 04:04
Товарищи, господа и просто хорошие люди, ткните меня носом в человеческое описание qmake. Официальный хелп читал. Как справиться с задачей не понял...

В общем во всем известной библиотеке TrayIcon есть файл trayicon.pri. Я так понимаю он влияет на создание .pro файла? Или нет?
после выполнения qmake -project имеем такие строки в .pro файле:

SOURCES += main.cpp \
...
           widgets/trayicon/trayicon_mac.cpp \
           widgets/trayicon/trayicon_win.cpp \
           widgets/trayicon/trayicon_x11.cpp

И соотвестственно фигня получается при сборке. Править постоянно руками и оставлять нужную строчку уже достало. Как мне сделать человеческу сборку проекта, без ковыряния вручную .pro файла?
Зарание благодарю.

Кстати, если кому интересно, тут лежит TrayIcon полностью переписанный под Qt 4.
http://svn.berlios.de/viewcvs/wolfpack/trunk/server/src/gui/trayicon/


Название: Qt 4.1.1, qmake и .pri
Отправлено: Asaphus_Expansus от Май 12, 2006, 12:21
.pri файл - это include файл к проекту.

В .pro файле СВОЕГО проекта ты должен вставить стороку include(trayicon.pri) и при сборке ТВОЕГО проекта будут подключены trayicon.cpp/trayicon.h


Название: Qt 4.1.1, qmake и .pri
Отправлено: Sergeich от Май 12, 2006, 14:53
Вообще-то по уму пишут так:
win32: SOURSES += trayicon_win.cpp
unix: SOURSES += trayicon_x11.cpp


Название: Qt 4.1.1, qmake и .pri
Отправлено: Asaphus_Expansus от Май 12, 2006, 15:55
Цитата: "Sergeich"
Вообще-то по уму пишут так:
win32: SOURSES += trayicon_win.cpp
unix: SOURSES += trayicon_x11.cpp


Там в trayicon.pri ровно это и написано.


Название: Re: Qt 4.1.1, qmake и .pri
Отправлено: beginner от Май 13, 2006, 03:39
Цитата: "Azathoth"
Кстати, если кому интересно, тут лежит TrayIcon полностью переписанный под Qt 4.
http://svn.berlios.de/viewcvs/wolfpack/trunk/server/src/gui/trayicon/
Скачал по ссылке исходники, попытался откомпилить и получил:
Код:
release\trayicon_win.o(.text+0x4ea):trayicon_win.cpp: 
undefined reference to `CreateBitmap@20'
release\trayicon_win.o(.text+0x5ab):trayicon_win.cpp:
undefined reference to `DeleteObject@4'
release\trayicon_win.o(.text+0xf17):trayicon_win.cpp:
undefined reference to `DeleteObject@4'
release\trayicon_win.o(.text$_ZN8TrayIcon15TrayIconPrivateD1Ev[TrayIcon::TrayIconPrivate::
~TrayIconPrivate()]+0xb2):trayicon_win.cpp:
undefined reference to `DeleteObject@4'
release\trayicon_win.o(.text$_ZN8TrayIcon15TrayIconPrivateD0Ev[TrayIcon::TrayIconPrivate::
~TrayIconPrivate()]+0xbd):trayicon_win.cpp:
undefined reference to `DeleteObject@4'

Компилил под Qt 4.1.2. Подскажите в чем проблема и как быть?


Название: Qt 4.1.1, qmake и .pri
Отправлено: Sergeich от Май 13, 2006, 15:14
MinGW значить.... Похоже у тя проблемы с подлючением либы gdi, CreateBitmap и DeleteObject оттуда.


Название: Qt 4.1.1, qmake и .pri
Отправлено: beginner от Май 13, 2006, 17:41
Цитата: "Sergeich"
MinGW значить.... Похоже у тя проблемы с подлючением либы gdi, CreateBitmap и DeleteObject оттуда.
Ага, MinGW. А про CreateBitmap и DeleteObject в хелпе 4 Qt ни слова, может это что-то устаревшее?


Название: Qt 4.1.1, qmake и .pri
Отправлено: Sergeich от Май 13, 2006, 20:12
CreateBitmap и DeleteObject ф-ции из виндовой библиотеки gdi32, а у тя она почему-то не цепляется. Посмотри makefile


Название: Qt 4.1.1, qmake и .pri
Отправлено: beginner от Май 13, 2006, 20:34
Цитата: "Sergeich"
CreateBitmap и DeleteObject ф-ции из виндовой библиотеки gdi32, а у тя она почему-то не цепляется. Посмотри makefile
Да, спасибо, теперь понял в чем дело. Это все по неопытности. Прописал явно в проектном файле эту либку и всё ОК.


Название: Qt 4.1.1, qmake и .pri
Отправлено: Azathoth от Май 15, 2006, 01:43
Цитата: "Asaphus_Expansus"
В .pro файле СВОЕГО проекта ты должен вставить стороку include(trayicon.pri) и при сборке ТВОЕГО проекта будут подключены trayicon.cpp/trayicon.h

Так в том и дело что .pro файл МОЕГО проекта генерится через make -project.
Вот собственно во время этого шага как .pri файл влияет на создание проектного файла? Или он не влияет?


Название: Qt 4.1.1, qmake и .pri
Отправлено: Asaphus_Expansus от Май 15, 2006, 15:28
Цитата: "Azathoth"

Вот собственно во время этого шага как .pri файл влияет на создание проектного файла? Или он не влияет?


Никак. Положи все файлы trayicon в отдельную директорию, свой профайл генери при помощи -project, руками туда вставляй include(trayicon.pri) с путем до нужной директории.


Название: Qt 4.1.1, qmake и .pri
Отправлено: Azathoth от Май 16, 2006, 01:02
Цитата: "Asaphus_Expansus"
Никак. Положи все файлы trayicon в отдельную директорию, свой профайл генери при помощи -project, руками туда вставляй include(trayicon.pri) с путем до нужной директории.

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


Название: Qt 4.1.1, qmake и .pri
Отправлено: Asaphus_Expansus от Май 16, 2006, 11:40
Нет. Я уже рассказывал технологию где-то в соседней ветке.

project.pro

include(project.pri)
include(trayicon.pri)

qmake -project -o project.pri

qmake project.pro


Название: Qt 4.1.1, qmake и .pri
Отправлено: BaltikS от Май 22, 2006, 23:34
Друзья, делаю как вы советуете, но увы при линковке получаю такие вот вещи
Код:
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__RegisterWindowMessageW@4
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__Shell_NotifyIconA@8
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__DrawIconEx@36
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__DestroyIcon@4
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__DeleteObject@4
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__CreateIconIndirect@4
trayicon_win.obj : error LNK2001: unresolved external symbol __imp__CreateBitmap@20

Компилю VC6