У меня проблемы с установкой зависимостей между подпроектами в контексте проекта qmake SUBDIRS
.
Я использую опцию .depends
, чтобы установить зависимость одного проекта от другого, ожидаяпервый должен быть перекомпилирован при изменении последнего, но этого не происходит - последний перекомпилируется после изменения, а зависимый проект - нет.
Не понимаю ли я значение параметра .depends
?
Вот минимальный пример, иллюстрирующий проблему:
+mysubdirs/
| mysubdirs.pro
| +mylib/
| | mylib.pro
| | MyClass.h
| | MyClass.cpp
| +myapp/
| | myapp.pro
| | main.cpp
mysubdirs.pro :
TEMPLATE = subdirs
SUBDIRS += mylib
SUBDIRS += myapp
CONFIG += ordered
myapp.depends = mylib
mylib.pro:
TEMPLATE = lib
CONFIG += staticlib
HEADERS = MyClass.h
SOURCES = MyClass.cpp
myapp.pro :
TEMPLATE = app
SOURCES = main.cpp
LIBS += "../../build-mysubdirs/mylib/libmylib.a"
INCLUDEPATH += ../mylib
MyClass.h :
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass
{
public:
MyClass();
};
#endif // MYCLASS_H
MyClass.cpp :
#include "MyClass.h"
#include <iostream>
MyClass::MyClass()
{
std::cout << "in constructor" << std::endl;
}
main.cpp :
#include "MyClass.h"
int main()
{
MyClass x;
return 0;
}
Скомпилируйте проект subdirs.Затем измените строку «in constructor» на что-то другое и перекомпилируйте: вывод myapp не изменится.