SORU
13 EYLÜL 2009, Pazar


Nasıl'In QMake subdirs şablonu kullanmak için?

< / ^ br . Qt öğrenmeye başladım. Visual Studio dünyadan taşınıyorum ve bir projem yapısı QMake kullanarak düzenlemek için arıyorum. Buldum 'subdirs' şablonu ama oldukça zor bir zaman anlayışı var.

Proje yapısı bu gibi görünüyor:

project_dir/
    main.cpp
    project.pro
    logic/
      logic.pro
      some logic files
    gui/
      gui.pro
      gui files

Benimproje.probu gibi görünüyor

TEMPLATE = subdirs
SUBDIRS = logic \
          gui
SOURCES  = main.cpp

.prouygun olduğum alt dizinleri dosyalarıKAYNAKLAR,BAŞLIKLARIveKAYNAKLARdeğişkenleri ayarlayın.

Ne olduğunu söyle lütfenHEDEF,ŞABLONve diğer gerekli değerlerini ayarlayın.prodosyaları.

Ayrıca, bazı iyi QMake öğretici bir resmi var mı?

CEVAP
13 EYLÜL 2009, Pazar


Troubadour's comment ek olarak SUBDIRS hedef belirleme alt dizinler için iyi olduğunu not ediyorum. Bu nedenle, ekstra hat

SOURCES  = main.cpp

projenizde.pro dosya yanlış olduğunu ve büyük olasılıkla main.cpp dosyanızı, en kötü ihtimalle oluşturmak için başarısız olur. En iyi ihtimalle, qmake içinde çelişkili özelliklerine sahip olduğu için dosyayı ayrıştırmak için kabul eder.

Ben de kullandım SUBDIRS şablon bir kaç kez, ve iyi inşa edebilir ve parçaya daha fazla veya daha az bağımsız kütüphaneler, görünen o ki, var olan mantık ve guı ayırın. İşte bunu yapmanın bir yolu:

project_dir/
-project.pro
-common.pri
-logic/
----logic.pro
----some logic files
-gui/
----gui.pro
----gui files
-build/
----build.pro
----main.cpp

proje.pro:

TEMPLATE = subdirs
SUBDIRS = logic \
          gui

# build must be last:
CONFIG  = ordered
SUBDIRS  = build

ortak.pri:

#Includes common configuration for all subdirectory .pro files.
INCLUDEPATH  = . ..
WARNINGS  = -Wall

TEMPLATE = lib

# The following keeps the generated files at least somewhat separate 
# from the source files.
UI_DIR = uics
MOC_DIR = mocs
OBJECTS_DIR = objs

mantık/mantık.pro:

# Check if the config file exists
! include( ../common.pri ) {
    error( "Couldn't find the common.pri file!" )
}

HEADERS  = logic.h
SOURCES  = logic.cpp

# By default, TARGET is the same as the directory, so it will make 
# liblogic.a (in linux).  Uncomment to override.
# TARGET = target

/guı gui.pro:

! include( ../common.pri ) {
    error( "Couldn't find the common.pri file!" )
}

FORMS  = gui.ui
HEADERS  = gui.h
SOURCES  = gui.cpp

# By default, TARGET is the same as the directory, so it will make 
# libgui.a (in linux).  Uncomment to override.
# TARGET = target

/build.pro:

TEMPLATE = app

SOURCES  = main.cpp

LIBS  = -L../logic -L../gui -llogic -lgui

# Will build the final executable in the main project directory.
TARGET = ../project

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bucky Roberts

    Bucky Robert

    9 HAZİRAN 2011
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Mindy

    Mindy

    20 NİSAN 2006