Russian Qt Forum
Ноябрь 24, 2024, 02:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4.1.1, qmake и .pri  (Прочитано 10816 раз)
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/
Записан
Asaphus_Expansus
Гость
« Ответ #1 : Май 12, 2006, 12:21 »

.pri файл - это include файл к проекту.

В .pro файле СВОЕГО проекта ты должен вставить стороку include(trayicon.pri) и при сборке ТВОЕГО проекта будут подключены trayicon.cpp/trayicon.h
Записан
Sergeich
Гость
« Ответ #2 : Май 12, 2006, 14:53 »

Вообще-то по уму пишут так:
win32: SOURSES += trayicon_win.cpp
unix: SOURSES += trayicon_x11.cpp
Записан
Asaphus_Expansus
Гость
« Ответ #3 : Май 12, 2006, 15:55 »

Цитата: "Sergeich"
Вообще-то по уму пишут так:
win32: SOURSES += trayicon_win.cpp
unix: SOURSES += trayicon_x11.cpp


Там в trayicon.pri ровно это и написано.
Записан
beginner
Гость
« Ответ #4 : Май 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. Подскажите в чем проблема и как быть?
Записан
Sergeich
Гость
« Ответ #5 : Май 13, 2006, 15:14 »

MinGW значить.... Похоже у тя проблемы с подлючением либы gdi, CreateBitmap и DeleteObject оттуда.
Записан
beginner
Гость
« Ответ #6 : Май 13, 2006, 17:41 »

Цитата: "Sergeich"
MinGW значить.... Похоже у тя проблемы с подлючением либы gdi, CreateBitmap и DeleteObject оттуда.
Ага, MinGW. А про CreateBitmap и DeleteObject в хелпе 4 Qt ни слова, может это что-то устаревшее?
Записан
Sergeich
Гость
« Ответ #7 : Май 13, 2006, 20:12 »

CreateBitmap и DeleteObject ф-ции из виндовой библиотеки gdi32, а у тя она почему-то не цепляется. Посмотри makefile
Записан
beginner
Гость
« Ответ #8 : Май 13, 2006, 20:34 »

Цитата: "Sergeich"
CreateBitmap и DeleteObject ф-ции из виндовой библиотеки gdi32, а у тя она почему-то не цепляется. Посмотри makefile
Да, спасибо, теперь понял в чем дело. Это все по неопытности. Прописал явно в проектном файле эту либку и всё ОК.
Записан
Azathoth
Гость
« Ответ #9 : Май 15, 2006, 01:43 »

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

Так в том и дело что .pro файл МОЕГО проекта генерится через make -project.
Вот собственно во время этого шага как .pri файл влияет на создание проектного файла? Или он не влияет?
Записан
Asaphus_Expansus
Гость
« Ответ #10 : Май 15, 2006, 15:28 »

Цитата: "Azathoth"

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


Никак. Положи все файлы trayicon в отдельную директорию, свой профайл генери при помощи -project, руками туда вставляй include(trayicon.pri) с путем до нужной директории.
Записан
Azathoth
Гость
« Ответ #11 : Май 16, 2006, 01:02 »

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

Понятно. Т.е. на стадии интенсивного развития, когда постоянно добавляются или удаляются новые файлы, придется все так же геммороиться...
Записан
Asaphus_Expansus
Гость
« Ответ #12 : Май 16, 2006, 11:40 »

Нет. Я уже рассказывал технологию где-то в соседней ветке.

project.pro

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

qmake -project -o project.pri

qmake project.pro
Записан
BaltikS
Гость
« Ответ #13 : Май 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
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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