Pergunta

Tenha um arquivo SomeLib.pro que contém:

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

Então, em uma SomeApp.pro dependente:

..
debug:LIBS += -lSomeLib_debug
..

Como posso forçar SomeApp para construir se eu tocasse SomeLib em qmake?

Foi útil?

Solução

É feio, porque você precisa dar o nome do arquivo de biblioteca exata, mas isso deve funcionar:

TARGETDEPS + = libfoo.a

Outras dicas

QT Creator irá fazer o trabalho, se você clicar em "Adicionar biblioteca ..." no menu de contexto do projeto que deve incluir a biblioteca.

Essas variáveis ??são configurados automaticamente para você:

  • LIBS
  • IncludePath
  • DEPENDPATH
  • PRE_TARGETDEPS

Veja também http: //doc.qt. digia.com/qtcreator-2.1/creator-project-qmake-libraries.html

Em resposta ao comentário de Zahir, talvez seja importante ressaltar que declarar essa dependência em arquivos qmake é desnecessário se usar DLLs, mas é essencial se o seu exe depende de uma biblioteca estática.

qmake não fornece essa capacidade.

Em vez disso, coloque o seu aplicativo e lib nos subdiretórios, em seguida, criar um Makefile em seu diretório pai que é algo como isto:

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

FRC:

Em seguida, sempre correr make a partir deste diretório.

eu usei:

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

Ele funciona, mas é desajeitado, uma vez que é necessário especificar o caminho completo para a biblioteca, que é diferente para cada sistema operacional / compilador.

certamente que não pode ser possível, você está falando sobre o uso qmake para fazer uma pesquisa de dependência inversa? então o que u quero é que ele para construir aplicativo B (e qualquer outro aplicativo dependente de biblioteca A) depois de ter feito uma mudança para a biblioteca A?

que é um pouco como dizer que recompilar todas as aplicações básicas visuais se vbrun300.dll é atualizado?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top