Ah indeed. It worked! To recap: I have added the following to MyApp PRO file: PRE_TARGETDEPS += $$PWD/../staticlib/debug/staticlib.lib
It’s a bit pity that PRE_TARGETDEPS takes the absolute path to the file rather than simply the target name (thus resolving the path on its own depending on OS and naming conventions) Thank you Thiago and Elivs for the help! -----Original Message----- From: Elvis Stansvik [mailto:elvst...@gmail.com] Sent: Friday, June 16, 2017 10:15 PM To: Enmaniac Software Cc: interest@qt-project.org Interest Subject: Re: [Interest] Automatic relink of executable after change in dependant static library 2017-06-16 21:08 GMT+02:00 Enmaniac Software <enmaniac.softw...@gmail.com>: > Hi all, > > > > I hope I am posting it in the right place. This is my first post in > this mailing list. If that’s not the right place, I would like to > apologize and feel free to direct me to the correct one. > > > > As for my question. I am trying to figure out why my executable is not > being updated when the static library which it depends on gets > changed. Here are my PRO files. > > > > Root PRO file: > > > > TEMPLATE = subdirs > > SUBDIRS += myapp staticlib > > > > myapp.subdir = myapp > > staticlib.subdir = staticlib > > > > myapp.depends = staticlib > > > > MyApp PRO file: > > QT += core > > QT -= gui > > > > CONFIG += c++11 > > > > TARGET = myapp > > CONFIG += console > > CONFIG -= app_bundle > > > > TEMPLATE = app > > > > SOURCES += main.cpp > > > > # The following define makes your compiler emit warnings if you use > > # any feature of Qt which as been marked deprecated (the exact > warnings > > # depend on your compiler). Please consult the documentation of the > > # deprecated API in order to know how to port your code away from it. > > DEFINES += QT_DEPRECATED_WARNINGS > > > > # You can also make your code fail to compile if you use deprecated APIs. > > # In order to do so, uncomment the following line. > > # You can also select to disable deprecated APIs only up to a certain > version of Qt. > > #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs > deprecated before Qt 6.0.0 > > > > LIBS += -L$$PWD/../staticlib/debug -lstaticlib > > INCLUDEPATH += $$PWD/../staticlib > > > > Static library PRO file: > > QT -= gui > > > > TARGET = StaticLib > > TEMPLATE = lib > > CONFIG += staticlib > > > > # The following define makes your compiler emit warnings if you use > > # any feature of Qt which as been marked as deprecated (the exact > warnings > > # depend on your compiler). Please consult the documentation of the > > # deprecated API in order to know how to port your code away from it. > > DEFINES += QT_DEPRECATED_WARNINGS > > > > # You can also make your code fail to compile if you use deprecated APIs. > > # In order to do so, uncomment the following line. > > # You can also select to disable deprecated APIs only up to a certain > version of Qt. > > #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs > deprecated before Qt 6.0.0 > > > > SOURCES += staticlib.cpp > > > > HEADERS += staticlib.h > > unix { > > target.path = /usr/lib > > INSTALLS += target > > } > > > > When the static library is changed, it is recompiled and relinked as > expected. However, the executable itself is not. > > I have tried to use QMAKE from command line and through QtCreator and > have the same issue (Qt 5.8.0 and QtCreator 4.2.1, Windows 10 x64, > MSVC 2015) > > > > Do I miss something here ? I think you're looking for PRE_TARGETDEPS [1]. Elvis [1] http://doc.qt.io/qt-5/qmake-variable-reference.html#pre-targetdeps > > > > Thanks in advance! > > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest