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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Настройка .pro файла  (Прочитано 9010 раз)
stima
Гость
« : Ноябрь 30, 2011, 22:25 »

Хочу упорядочить сборку, что-то вроде такого:
release:DESTDIR     = release
release:OBJECTS_DIR = release/.obj
release:MOC_DIR     = release/.moc
release:RCC_DIR     = release/.rcc
release:UI_DIR      = release/.ui

но возникают ньюансы:
1. Создаеться еще папка debug (как убрать это?)
2. если прописую это в .pro файле, то начинаються непонятки с подключенными хедерами, пишет, что ниодин хедер не найден
Записан
andrew.k
Гость
« Ответ #1 : Ноябрь 30, 2011, 23:53 »

ты бы полностью выложил про, а не кусок.
Может ты запускаешь на компиляцию Debug&Release?

Попробуй так.
qmake -r CONFIG+=release
Записан
stima
Гость
« Ответ #2 : Декабрь 01, 2011, 00:06 »

QT += core gui

TARGET = NoName
TEMPLATE = app

CONFIG += release

HEADERS += \
    Gui/Welcome.h \
    Gui/ScanSettings.h \
    Gui/ScanResult.h \
    Gui/ScanProgress.h \
    Gui/MainForm.h \
    Interfaces/IPlugin.h

SOURCES += \
    Gui/ScanSettings.cpp \
    Gui/ScanResult.cpp \
    Gui/ScanProgress.cpp \
    Gui/MainForm.cpp \
    Gui/Welcome.cpp \
    main.cpp

FORMS += \
    Gui/Welcome.ui \
    Gui/ScanSettings.ui \
    Gui/ScanResult.ui \
    Gui/ScanProgress.ui \
    Gui/MainForm.ui

release:DESTDIR        = release
release:OBJECTS_DIR  = release/.obj
release:MOC_DIR       = release/.moc
release:RCC_DIR        = release/.rcc
release:UI_DIR          = release/.ui
Записан
stima
Гость
« Ответ #3 : Декабрь 01, 2011, 01:04 »

Как вообще организовать структуру проекта и соответственно прописать pro файлы, чтобы получить приблизительно следущее:
project/ - папка проекта
    /mian - главный проект
        /gui - поддериктория с гуи хедерами, исходниками, ui файлами
        /engine - определенная логика
   /plugin1 - проект плагина
   /plugin2
   /relese - папка релиз версии
      /libs - здесь уже лежит qtcore4.dll, qtgui4.dll, а также сюда перенаправляются dll из плагинов
      *.exe - собственно екзешник
Записан
andrew.k
Гость
« Ответ #4 : Декабрь 01, 2011, 01:32 »

в папке проекта создаешь файл проекта template=subdirs
в него включаешь все свои подпроекты.
Уже в каждом из них организовываешь как тебе нужно.
Чтобы файлы складывались в нужные тебе директории.
Найди руководство по кумейку.
qmake manual в гугле.
Все равно возникнет куча вопросов в процессе, а там все очень хорошо описано.
В инете встречается русскоязычная версия, если нужно.
Записан
stima
Гость
« Ответ #5 : Декабрь 01, 2011, 02:44 »

Если было бы все так просто), я читал мануал))
Записан
andrew.k
Гость
« Ответ #6 : Декабрь 01, 2011, 11:45 »

Так что ты ожидаешь, тебе тут готовый файл проекта выдадут?
Касательно твоей задачи, все действительно просто.
Нужно всего-то один файл проекта сделать с двумя строчками.

http://lmgtfy.com/?q=template+subdirs
« Последнее редактирование: Декабрь 01, 2011, 11:49 от andrew.k » Записан
stima
Гость
« Ответ #7 : Декабрь 01, 2011, 14:42 »

Прочитай внимательней первый пост.

------------------
TEMPLATE = subdirs

SUBDIRS += Plugin\
           MainApp

CONFIG += ordered
------------------

QT       += core gui

TARGET = NoName
TEMPLATE = app

SOURCES += main.cpp\
           Gui/Welcome.cpp \
           Gui/ScanSettings.cpp \
           Gui/ScanResult.cpp \
           Gui/ScanProgress.cpp \
           Gui/MainForm.cpp \
           Interfaces/IPlugin.cpp

HEADERS += Gui/Welcome.h \
           Gui/ScanSettings.h \
           Gui/ScanResult.h \
           Gui/ScanProgress.h \
           Gui/MainForm.h \
           Interfaces/IStep.h \
           Interfaces/IPlugin.h

FORMS   += Gui/MainForm.ui \
           Gui/Welcome.ui \
           Gui/ScanSettings.ui \
           Gui/ScanResult.ui \
           Gui/ScanProgress.ui

CONFIG(release, debug|release) { //Всеравно создает папку .debug
    DESTDIR  = ../.release
}

#else {
#   DESTDIR = ../.debug 
#}

OBJECTS_DIR = .tmp/obj
MOC_DIR     = .tmp/moc
RCC_DIR     = .tmp/rcc
#UI_DIR      = .ui /// Если добавить эту строчку то ругаеться на хедеры
 
Записан
andrew.k
Гость
« Ответ #8 : Декабрь 01, 2011, 17:59 »

Да, это я перепутал что-то с чем-то)
Записан
andrew.k
Гость
« Ответ #9 : Декабрь 01, 2011, 18:01 »

добавь это в файл проекта.

CONFIG(debug, debug|release) {
  message(Qt version: $$[QT_VERSION] debug)
}
else {
  message(Qt version: $$[QT_VERSION] release)
}

Посмотри какая сбора отрабатывает релиз или дебаг.
Записан
stima
Гость
« Ответ #10 : Декабрь 01, 2011, 19:43 »

Вообще ничего не пишет
Записан
andrew.k
Гость
« Ответ #11 : Декабрь 02, 2011, 00:15 »

так не может быть. должен писать, когда qmake запускаешь.
Записан
stima
Гость
« Ответ #12 : Декабрь 02, 2011, 11:19 »

Не доглядел извиняюсь Project MESSAGE: Qt version: 4.7.4 release
Записан
andrew.k
Гость
« Ответ #13 : Декабрь 02, 2011, 17:33 »

Тогда хз)
Записан
SASA
Гость
« Ответ #14 : Декабрь 05, 2011, 17:22 »

Папки debug и release создаются всегда. Не знаю почему.
Про ui. Обычно пишу UI_DIR += и никогда не ругался.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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