2015-09-25 2 views
1

Моя структура проекта Qt похожа на это:QT CreatorL Добавление исходных файлов из другого (родительского) каталога

Структура каталогов:

| 
    |--- dir 
    |  | 
    |  | - a.c 
    |  | - a.h 
    |  | - test.pro 
    |--- dir1 
    |  | - b.c 
    |  | - b.h 

test.pro

SOURCES += a.c \ 
      ../dir1/*.c 
HEADERS += a.h \ 
      ../dir1/*.h 

Когда я пытаюсь для построения проекта Я получаю сообщение об ошибке:

:-1: error: No rule to make target `../dir1/*.c' 

Есть ли все-таки включить исходные файлы, которые находятся за пределами файла .pro?

А также показать их на панели «Проекты» слева в Qt Creator?

+2

Я думаю, что дикие карты не поддерживаются –

ответ

1

Подстановочные знаки в файле qmake (.pro) работают только для файлов в текущей директории проекта. Для подпапок это не работает. Таким образом, правильное решение - добавить каждый файл отдельно.

Вопрос был поднят на трекер ошибок Qt QTCREATORBUG-8925. Помеченный закрыт, как новый запрос функции или из-за многочисленных проблем:

Using wildcards in .pro files creates multiple problems, e.g. adding a additional file won't automatically compile it. Nor would deleting a file automatically remove it from the Makefile

Однако есть недокументированная функция перечислены на вики Undocumented_QMake

files(glob) — Returns a list of files which match the specified glob pattern.

Таким образом, если вышеперечисленные проблемы использования универсализации модели приемлемы, он может использоваться как

SOURCES += $$files(../dir1/*.c)