2011-01-12 25 views
12

ho provato a compilare un progetto con CMake, ma ho ottenuto il seguente errore:cmake errore di compilazione

[email protected]:~/oooark$ cmake . 
CMake Error at CMakeLists.txt:19 (message): 
    In-source builds are not allowed. 

ad esempio la routine:

rm CMakeCache.txt 
mkdir build 
cd build 
cmake .. 
make 
-- Configuring incomplete, errors occurred! 

Qualcuno mi può aiutare?

+0

Sei sicuro che 'make' è stato installato? Controlla se sia 'make' che' gcc' sono installati correttamente .. – Sen

+0

Puoi mostrarci CMakeLists.txt alla riga 19? – tibur

+0

Quindi, perché non leggi il messaggio di errore e fai ciò che dice? – user562374

risposta

21

Fai come dice il messaggio di aiuto: rimuovi il file CMakeCache.txt, crea una sottodirectory chiamata build, cambia in quella directory, quindi esegui di nuovo cmake da lì.

rm CMakeCache.txt 
mkdir build 
cd build 
cmake .. 
make 

Questo perché è stato eseguito "cmake". nella parte superiore dell'albero dei sorgenti. Il motivo per cui non è possibile eseguire cmake nella directory di origine è impedire che l'albero di origine ottenga artefatti di build sparsi ovunque.

+0

Buona risposta. Potresti spiegarci di più? Cosa sono questi "artefatti di costruzione"? Quindi la struttura della directory dovrebbe avere le cartelle build, lib, bin al suo interno? E costruiamo cmake nella cartella di compilazione vuota? I file di generazione generati sono scritti nella cartella build. Questi sono i file di output. –

1

La build precedente ha creato CMakeCache.txt e una directory CMakeFiles. Rimuovere questo file e directory e come:

llvm_src è la directory principale in cui LLVM è decompresso o scaricato

$ cd <llvm_src> 
$ cd <llvm_src> 
$ rm -rf CMakeCace.txt CMakeFiles 
$ mkdir build 
$ cd build 
$ cmake -G "Unix Makefiles" <llvm_src> 

Questo dovrebbe generare makefile nella directory di compilazione.

$ cmake -DCMAKE_INSTALL_PREFIX:PATH=<path_to_install_directory> . && make all install