2009-04-23 10 views

risposta

15

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

TARGETDEPS + = libfoo.a

+0

Ottimo! Proprio quello di cui avevo bisogno! –

+1

Usa invece PRE_TARGETDEPS. –

+0

perché? cosa c'è di sbagliato con TARGETDEPS? – paulm

0

sicuramente non è possibile, si sta parlando dell'utilizzo di qmake per eseguire una ricerca di dipendenza inversa? quindi quello che vuoi è creare l'app B (e qualsiasi altra app dipendente dalla libreria A) dopo aver apportato una modifica alla libreria A?

è un po 'come dire ricompilare tutte le app di base visive se vbrun300.dll viene aggiornato?

1

qmake non fornisce questa capacità.

Invece, 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 gestita make da questa directory.

+1

Sto facendo uso di qtcreator. Così speravo in una soluzione in un file .pro. –

2

In risposta al commento di Zahir, è forse opportuno sottolineare che affermando questo la dipendenza dai file qmake non è necessaria se si usano DLL, ma è essenziale se il proprio exe dipende da una libreria statica.

1

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.