Sono stato su Google per un po 'e non ho ancora ottenuto risultati quindi mi rivolgo a voi ragazzi ^^ Sto cercando di utilizzare CMake per creare il mio progetto C++ e ho un problema nell'intestazione percorsi.CMake e percorsi di intestazione assoluti
Poiché utilizzo molte classi organizzate in più directory, tutte le mie istruzioni di inclusione sono con percorsi assoluti (quindi non è necessario utilizzare "../../") ma quando si tenta di rendere generato il CMake Makefile semplicemente non funziona.
Qualcuno sa come specificare in CMakeLists.txt che tutti gli include sono con percorsi assoluti? Grazie mille in anticipo.
La mia uscita quando si cerca di fare
~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:45:25: Utils/Utils.h: No such file or directory
~/multiboost/BanditsLS/GenericBanditAlgorithmLS.h:46:35: Utils/StreamTokenizer.h: No such file or directory
Il mio file CMakeLists.txt:
#The following command allows the use of the "file" command
cmake_minimum_required(VERSION 2.6)
#The declaration of the project
project(multiboost)
#This allows recursive parsing of the source files
file(
GLOB_RECURSE
source_files
*
)
list(REMOVE_ITEM source_files ./build/*)
#This indicates the target (the executable)
add_executable(
multiboost
${source_files} #EXCLUDE_FROM_ALL build/
)
si può prvodie un piccolo esempio (fonte/header/cmake)? inoltre, i percorsi assoluti sono generalmente una cattiva idea. Il modo migliore per farlo è il modo in cui, ad esempio, boost lo fa: specifica una singola radice che si trova nel percorso di inclusione dal compilatore e inizia da lì. – stijn
Sì esattamente, questo è quello che sto facendo: dire che ho un src/dir che contiene tutti i sottodirectory del sorgente e il file principale. In tutte le mie istruzioni include, devo solo specificare il percorso da src /. Nel mio progetto XCode, funziona bene ma non ho ancora capito come realizzarlo in CMake. (Grazie per la tua risposta; o)) – Archy
sì, ma abbiamo ancora bisogno di un esempio + ulteriori informazioni ('semplicemente non funziona' è così criptico come può ottenere una descrizione di errore, non ci dice nulla) – stijn