J'ai un projet Qt (appelé "scanner") construit avec QMake, où j'ai 2 sous-projets : une librairie statique appelée "scannerlib" et une application utilisant cette librairie, appelée "app" (qui, pour l'instant, est juste un fichier main.cpp).
Mon dossier "scanner" contient le fichier scanner.pro :
QT += core testlib
QT -= gui
CONFIG += c++14
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = subdirs
SUBDIRS = app scannerlib
app.depends = scannerlib
Et deux sous-dossiers, contenant un fichier .pro et le fichier source correspondant. scannerlib/scannerlib.pro :
TARGET = scannerlib
TEMPLATE = lib
CONFIG += staticlib
#I ommited SOURCES and HEADERS here for brevity
app/app.pro :
TARGET = app
TEMPLATE = app
SOURCES = main.cpp
INCLUDEPATH += ../scannerlib
LIBS += -L../scannerlib -lscannerlib
J'ai réussi à construire libscanner, mais je ne peux pas le lier dans "app".
error : cannot find -lscannerlib
Après vérification, libscannerlib.a a été construit avec succès, donc il ne devrait pas y avoir de problème. Si je supprime -lscannerlib, j'obtiens une référence indéfinie. Ce qui semble légitime.
Je peux obtenir une construction réussie si je déplace la "libscannerlib.a" créée du dossier de construction vers scanner/scannerlib, ce qui permet à qmake de la trouver.
Ainsi, le problème semble provenir de "-L../scannerlib". Que dois-je mettre là de façon à ce que qmake trouve la librairie dans le dossier de construction ?