Domanda

Avere un file SomeLib.pro che contiene:

CONFIG  += debug
TEMPLATE = lib
TARGET = SomeLib
..

Poi, in un SomeApp.pro dipendente:

..
debug:LIBS += -lSomeLib_debug
..

Come posso forzare SomeApp per costruire se ho toccato SomeLib in qmake?

È stato utile?

Soluzione

E 'brutto perché è necessario dare il nome esatto del file della libreria, ma questo dovrebbe funzionare:

TARGETDEPS + = libfoo.a

Altri suggerimenti

QT Creator farà il lavoro, se si fa clic su "Aggiungi libreria ..." nel menu contestuale del progetto che dovrebbe includere la libreria.

Queste variabili sono configurati automaticamente per voi:

  • LIBS
  • INCLUDEPATH
  • DEPENDPATH
  • PRE_TARGETDEPS

Si veda anche http: //doc.qt. digia.com/qtcreator-2.1/creator-project-qmake-libraries.html

In risposta al commento di Zahir, è forse la pena di sottolineare che indica questa dipendenza nei file QMake non è necessaria se si utilizza DLL, ma è essenziale se il vostro exe dipende da una libreria statica.

qmake non fornisce questa capacità.

Al contrario, mettere la vostra app e lib nelle sottodirectory, quindi creare un Makefile nella loro directory padre che sembra qualcosa di simile:

all: FRC
    cd Somelib && qmake && $(MAKE) 
    cd SomeApp && qmake && $(MAKE)

FRC:

Poi sempre eseguire make da questa directory.

ho usato:

POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a

Funziona, ma è goffo in quanto è necessario specificare il percorso completo della libreria, che è diversa per ogni sistema / compilatore operativo.

certo che non può essere possibile, si sta parlando con qmake da eseguire una ricerca inversa di dipendenza? in modo che u vuole è per per costruire app B (e qualsiasi altra applicazione dipende dalla biblioteca A) dopo aver effettuato una modifica alla libreria di A?

che è un po 'come dire ricompilare tutte le applicazioni di Visual Basic se VBRUN300.DLL viene aggiornato?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top