2013-06-01 13 views
5

Sembra qualcosa che dovrebbe essere davvero semplice, eppure non sembra esserci un modo per farlo come ci si aspetterebbe.Qt Creator, come posso aggiungere un progetto C++ a un altro?

Ho due progetti C++ separati aperti in qt creator e vorrei includere/compilare un progetto nell'altro.

Ecco il mio layout:

project_a/ 
    project_a.pro 
    someheaders.h 
    somecode.cpp 
    main.cpp 

project_b/ 
    project_b.pro 
    someheaders.h 
    somecode.cpp 
    main.cpp 

Fondamentalmente voglio essere in grado di includere i file da project_a nel progetto b. Ho impostato project_a per essere una dipendenza all'interno di project_b ma sembra che sia stato del tutto inefficace come mezzo per utilizzare i due progetti. Cosa faccio?

risposta

4

Per aprire & costruzione sia del progetto come uno, utilizzare meta-progetto con tipo subdirs:

TEMPLATE = subdirs 
SUBDIRS += project_a project_b 
# Use ordered build, from first subdir (project_a) to the last (project_b): 
CONFIG += ordered 

si dovrebbe mettere sottoprogetto any_name.pro alla directory any_name, e inserire questa directory accanto al metaprogetto .pro di file .

Se si desidera includere le intestazioni da altri progetti, scrivere project_a.pri file che contiene, ad esempio:

# PWD expands to directory where project_a.pri placed. 
INCLUDEPATH += $$PWD/ 
INCLUDEPATH += $$PWD/network 

che includere questo file project_b.pro:

include(../project_a/project_a.pri) 

Se si desidera utilizzare project_a come libreria, cambiarlo in TEMPLATE = lib e aggiungere libreria con procedura guidata, disponibile nel menu di scelta rapida quando project_b.pro aperto nell'editor.

+0

Ok, quindi la prima parte ha funzionato. Ho un progetto di sottotitoli con i due progetti al suo interno. Ma non riesco ancora a utilizzare le intestazioni da project_a all'interno di project_b. Ho aggiunto un file project_a.pri in project_a ma non riesco ancora ad accedere a nessuna delle intestazioni. –

+0

Inoltre non sono chiaro su come includerli. Sono riuscito a includerli usando '../ project_a/header.h' ma sembra meno elegante! –

+0

Mi dispiace, ho dimenticato di dirlo. Ora rispondi aggiornato. –

Problemi correlati