LINUX.ORG.RU

Qt pri-файлы

 , ,


0

2

Подскажите пожалуйста, как правильно использовать pri-файлы в Qt? Хотел раскидать исходники по папкам для лучшей наглядности. У меня есть файлыв папке shape:

shape/shape.cpp

shape/noeditshape.cpp

shape/shape.h

shape/noeditshape.h

Создаю файл shape.pri:

SOURCES += shape/shape.cpp
SOURCES += shape/noeditshape.cpp
HEADERS += shape/shape.h
HEADERS += shape/noeditshape.h
В pro-файле дописываю:
include(shape/shape.pri)
SUBDIRS += shape\
Пути корректные, в дереве проекта начинается показываться папка shape со всеми файлами. Однако, при компиляции выдается:

mingw32-make[1]: *** No rule to make target 'Shape.cpp', needed by 'debug/shape.o'. Stop.

Подскажите плз, что еще нужно донастроить?

$ cat Devices/Devices.pri 
INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD

HEADERS += \
    Devices/device.h \
    Devices/extender.h \
    Devices/device_commons.h \
    Devices/controller.h \
    Devices/uartcommunication.h

SOURCES += \
    Devices/device.cpp \
    Devices/extender.cpp \
    Devices/controller.cpp \
    Devices/uartcommunication.cpp

$ cat App.pro | grep include
...
include (Devices/Devices.pri)
...

УМВР, правда под онтопиком. Но разницы быть не должно, по идее...

solovey ★★ ()
Последнее исправление: solovey (всего исправлений: 1)
QT += opengl
CONFIG += qt3d

LIBS += -lQt53D

INCLUDEPATH += $$PWD
DEPENDPATH += $$PWD

HEADERS += \
	$$PWD/header1.h \
	$$PWD/header2.h

SOURCES += \
	$$PWD/source1.cpp \
	$$PWD/source2.cpp

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

Для каждого pri файла можно задать свои зависимости модулей и т.п. свои библиотеки и пути.

pri - очень удобная штука, приводит в порядок код и легче подключать модули в другие программы.

I-Love-Microsoft ★★★★★ ()

No rule to make target 'Shape.cpp',

Эта ошибка практически всегда означает, что файла нет на указанном месте.

И ещё

  • Не надо писать имена переменных несколько раз, можно проще
    SOURCES += $$PWD/shape.cpp \
            $$PWD/noeditshape.cpp
    
  • SUBDIRS в данном случае ни при чём, это конструкция для совсем другой задачи
  • Внутри shape.pri можно использовать $$PWD — переменная PWD хранит путь к директории, где находится обрабатываемый файл pro, pri или prf (путь без слеша на конце).
quiet_readonly ★★★★ ()
Последнее исправление: quiet_readonly (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.