Как использовать шаблон subdirs QMAKE?

Для низкого уровня x86 определенное использование решения ТЕСТ x86 код операции.

Ваш компилятор должен повернуться _bittest в это хотя...

64
задан jrharshath 8 October 2009 в 15:17
поделиться

2 ответа

В дополнение к комментарию Трубадура , я бы отметил что цель SUBDIRS подходит только для указания подкаталогов. Следовательно, ваша дополнительная строка

SOURCES += main.cpp

в файле project.pro неверна и, скорее всего, не сможет создать ваш файл main.cpp в худшем случае. В лучшем случае qmake откажется анализировать файл, поскольку в нем есть конфликтующие спецификации.

Я использовал шаблон SUBDIRS несколько раз, и он отлично справляется, если вы можете встраивать части в несколько -или менее независимые библиотеки, по-видимому, как у вас с логикой и отдельным графическим интерфейсом. Вот один из способов сделать это:

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

project.pro:

TEMPLATE = subdirs
SUBDIRS = logic \
          gui

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

common.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

logic / logic.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

gui / 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 / 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
85
ответ дан 24 November 2019 в 15:55
поделиться

Вы используете подкаталоги , если папки логики и графического интерфейса фактически повторяют какую-то цель, например. библиотека, которую можно построить независимо от чего-либо еще. В этом случае просто используйте

TEMPLATE = lib
TARGET = logic
CONFIG += dll

в logic.pro.

Если они не являются независимыми целями, а представляют собой просто папки, которые существуют для организации исходных файлов, тогда вы можете просто использовать файл .pri в каждом из них и включать их внутри .pro с использованием

include(logic/logic.pri)
include(gui/gui.pri)

Просто помните, что пути к файлам в файлах .pri относятся к файлу .pro, а не к .pri. Кстати, использование файла .pri необязательно, так как вы все равно можете перечислить файлы в этих папках непосредственно в файле .pro. Файл .pri делает его немного более аккуратным и помогает уменьшить размер файла .pro.

17
ответ дан 24 November 2019 в 15:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: