2012-04-05 13 views
15

Para simplificar la situación, digamos que hay 2 archivos: core.cpp y main.cpp.¿Cómo creo una biblioteca estática y ejecutable con Qt?

core.cpp contiene la funcionalidad del programa y main.cpp contiene la implementación básica main().

Quiero Qt (usando qmake y los archivos .pro) a

  • primera construcción core.a y luego
  • uso que main.cpp y construir main.exe.

¿Cómo configuro esto en el archivo qmake? diseño

Respuesta

26

del sistema de archivos:

MyProject 
|_ myproject.pro 
|_ core 
    |_ core.cpp 
    |_ core.h 
    |_ core.pro 
|_ app 
    |_ main.cpp 
    |_ app.pro 

myproject.pro:

TEMPLATE = subdirs 
CONFIG += ordered 
SUBDIRS = core \ 
      app 
app.depends = core 

core.pro:

TEMPLATE = lib 
CONFIG += staticlib 
HEADERS = core.h 
SOURCES = core.cpp 

app.pro:

TEMPLATE = app 
SOURCES = main.cpp 
LIBS += ../core/libcore.a 
TARGET = ../app-exe # move executable one dire up 
+0

Nitpick: presionar resultados de reproducción en: 'Error al iniciar el programa. ¿La ruta o los permisos son incorrectos? '. ¿Cómo puedo solucionar esto? (Aparentemente está buscando el ejecutable en el directorio base) – chacham15

+0

Simplemente mueva el archivo ejecutable incorporado un directorio arriba con TARGET var, vea la respuesta actualizada – Masci

+1

'INCLUDEPATH + = ../ core /' también debería ser requerido en 'app.pro', ¿derecho? –

Cuestiones relacionadas