2009-04-23 7 views

Respuesta

15

Es feo porque es necesario para dar el nombre de archivo de la biblioteca exacta, pero esto debería funcionar:

TARGETDEPS + = libfoo.a

+0

¡Genial! ¡Justo lo que necesitaba! –

+1

Use PRE_TARGETDEPS en su lugar. –

+0

¿por qué? ¿Qué pasa con TARGETDEPS? – paulm

0

seguramente eso no puede ser posible, ¿está hablando de usar qmake para hacer una búsqueda de dependencia inversa? entonces, ¿qué quieres es que cree la aplicación B (y cualquier otra aplicación que dependa de la biblioteca A) después de que hayas hecho un cambio en la biblioteca A?

que es un poco como decir recompilar todas las aplicaciones visuales básicas si vbrun300.dll se actualiza?

1

qmake no proporciona esta capacidad.

lugar, poner su aplicación y lib en subdirectorios, a continuación, crear un Makefile en su directorio principal que se ve algo como esto:

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

FRC: 

Entonces se ejecutan siempre make desde este directorio.

+1

Estoy usando qtcreator. Por lo tanto, esperaba una solución en un archivo .pro. –

2

En respuesta al comentario de Zahir, que es tal vez la pena señalar que indica esto la dependencia en los archivos qmake es innecesaria si se utilizan archivos DLL, pero es essential si su exe depende de una biblioteca estática.

1

utilicé:

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

Funciona, pero es torpe ya que es necesario especificar la ruta completa a la biblioteca, que es diferente para cada sistema/compilador operativo.

Cuestiones relacionadas