2015-05-01 17 views
5

Ho costruito un progetto utilizzando cmake e alcune librerie. Desidero tuttavia aggiungere alcuni file di intestazione e cpp nel progetto che andrò a codificare. Qual è il modo più semplice per farlo? Posso semplicemente creare un file .cpp e header e quindi creare nuovamente un progetto in Visual Studio? O a causa del fatto che il progetto è stato costruito usando cmake non posso?Aggiunta di intestazione e file cpp in un progetto creato con cmake

+0

Hai provato? Penso che tu possa controllare se non puoi farlo da solo. – Shondeslitch

+0

Raccontaci cosa hai provato. CMake viene fornito con un generatore di progetti Visual Studio: se lo si utilizza e quindi si carica il progetto in Visual Studio, Visual Studio dovrebbe essere in grado di chiamare cmake automaticamente ogni volta che si modificano i file cmake, ad esempio per aggiungere un nuovo file sorgente. Nota: di solito non è necessario fare nulla in particolare se si aggiunge una nuova intestazione, solo se si aggiunge un nuovo file sorgente. – Antonio

risposta

8

È possibile inserire tutti i file di intestazione/origine nella stessa cartella e usare qualcosa come

file(GLOB SOURCES 
    header-folder/*.h 
    source-folder/*.cpp 
) 

add_executable(yourProj ${SOURCES}) 

In questo modo, si può fare uno dei seguenti due metodi per aggiungere nuovi aggiunto intestazione/sorgente in VS:

  1. necessario generare nuovamente in CMake.
  2. falso per modificare leggermente lo CMakeLists.txt, ad es. semplicemente aggiungi uno spazio. E poi costruisci la tua soluzione in VS, aggiungerà automaticamente nuovi file header/sorgente.
+0

ma questo non include, ad esempio 'header-folder/anotherdir/someheader.h'. Come risolverlo? – dimitris93

+1

@Shiro È possibile aggiungere qualcosa come 'header-folder/anotherdir/*. H' a quanto sopra o utilizzare [sottodirectory CMake] (http://stackoverflow.com/q/7787823/2589776). – herohuyongtao

+3

'GLOB_RECURSE' invece di' GLOB' cerca anche nelle sottodirectory! Era quello di cui avevo bisogno. – dimitris93

2

è necessario aggiungere ogni file .h e .cpp a CMakeList.txt in questo modo:

# Local header files here ONLY 
SET(TARGET_H 
    Header.h 
    Plugin.h 
    messagelog.h 
    win32application.h 
    timer.h  
    ) 

# Local source files here 
SET(TARGET_SRC 
    Plugin.cpp 
    messagelog.cpp 
    win32application.cpp 
    timer.cpp 
    ) 

quindi configurare e costruire di nuovo la soluzione e ricaricarlo in VS.

+1

Sì, ma ogni volta che voglio aggiungere un'intestazione nea o un file .cpp devo ricostruire l'intero programma usando cmake.Can faccio qualcosa per ottenere ciò tramite Visual Studio? – mariosbikos

+0

Non ho un ambiente Windows a portata di mano, ma almeno su linux, cmake viene chiamato automaticamente quando provate a creare le vostre fonti. Tranne che per il primo tempo di configurazione cmake, è trasparente per le successive modifiche a qualsiasi file CMakeLists.txt. –

0

Anche se è una risposta tardiva e l'ho appena visto. Sto usando CLion IDE da JetBrains, che aggiunge questi header e file .cpp automaticamente quando li crei. Altrimenti potrebbe non essere il tuo bisogno, potrebbe essere utile per gli altri popoli che lo vedono.

Problemi correlati