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
risposta
È 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:
- necessario generare nuovamente in CMake.
- 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.
ma questo non include, ad esempio 'header-folder/anotherdir/someheader.h'. Come risolverlo? – dimitris93
@Shiro È possibile aggiungere qualcosa come 'header-folder/anotherdir/*. H' a quanto sopra o utilizzare [sottodirectory CMake] (http://stackoverflow.com/q/7787823/2589776). – herohuyongtao
'GLOB_RECURSE' invece di' GLOB' cerca anche nelle sottodirectory! Era quello di cui avevo bisogno. – dimitris93
è 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.
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
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. –
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.
Hai provato? Penso che tu possa controllare se non puoi farlo da solo. – Shondeslitch
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