c++ - para - qt project
Vinculación con una lib de depuración/liberación con qmake/Qt Creator (2)
En su archivo de proyecto puede hacer algo como esto
debug {
LIBS += -L./libfolder -lmydebuglib.lib
}
release {
LIBS += -L./libfolder -lmyreleaselib.lib
}
El bit dentro de las llaves de depuración se usa si se ha agregado DEBUG a la variable CONFIG qmake, de manera similar, se incluye lo incluido dentro de los paréntesis de publicación si se ha agregado LIBERACIÓN a la variable CONFIG.
También puede usar "! Depurar" en lugar de "liberar" (es decir, cuando la depuración no está en la configuración)
Puede encontrar más información sobre qmake here .
Estoy usando Qt Creator y tengo un proyecto Qt GUI que depende de un proyecto de biblioteca estática de C ++. Quiero vincular la versión de lanzamiento de la aplicación GUI con la versión de lanzamiento de .lib y la versión de depuración de la aplicación GUI con el depurador .lib. Descubrí cómo agregar bibliotecas adicionales al proyecto al incluir una línea como la siguiente en mi archivo .pro:
LIBS += -L./libfolder -lmylib.lib
Pero no puedo ver cómo puedo usar un comando -L
diferente para versiones de lanzamiento y depuración.
¿Hay soporte en qmake para hacer esto?
Lo normal
debug:LIBS += ...
else:LIBS += ...
la solución se rompe cuando los usuarios ingenuamente usan CONFIG += debug
o CONFIG += release
para alternar entre compilaciones de depuración y lanzamiento (y lo hacen; nadie recuerda decir CONFIG -= release release_and_debug
antes de CONFIG += debug
:).
Esta es la forma canónica de aplicar el alcance a la debug
:
CONFIG( debug, debug|release ) {
# debug
QMAKE_LIBDIR += "path/to/debug/lib"
} else {
# release
QMAKE_LIBDIR += "path/to/release/lib"
}
Cf. los qmake documentos .
EDITAR 2013-11-17 : No use -Lfoo
en LIBS
. La forma canónica es agregar las rutas (sin la -L
) a QMAKE_LIBDIR
.