2013-05-22 10 views
10

Dies ist, was ich habe, wenn ich Generation beginnen:Cmake erzeugen Xcode-Projekt aus vorhandenen Quellen

iMac:IXCSoftswitch alex$ /usr/bin/cmake -G Xcode . 
-- CMAKE_SOURCE_DIR = /Users/alex/Desktop/ixc-v/IXCSoftswitch, CMAKE_BINARY_DIR = /Users/alex/Desktop/ixc-v/IXCSoftswitch 
CMake Error at CMakeLists.txt:25 (MESSAGE): 
    Binary and source directory cannot be the same 


-- Configuring incomplete, errors occurred! 

Wie kann ich es beheben? Ich bin neu in cmake, Proben geschätzt.

Antwort

39

CMake wird verwendet, um out-of-source Builds zu produzieren.

Die Idee hier ist, dass Sie die Dateien, die während der Kompilierung erstellt werden, nicht mit den ursprünglichen Quelldateien mischen. In der Praxis führen Sie CMake normalerweise aus einem neuen, leeren Build-Verzeichnis aus und geben den Pfad zum Quellverzeichnis als Argument an.

cd IXCSoftswitch 
mkdir build 
cd build 
cmake -G Xcode .. 

Alle von CMake generierten Dateien werden nun in das Unterverzeichnis build gehen (die eine viel sein könnte), während die Quellverzeichnis bleibt von Build-Artefakte sauber.

Das Konzept der Out-of-Source-Builds mag auf den ersten Blick seltsam erscheinen, aber es ist tatsächlich eine sehr bequeme Art zu arbeiten, sobald man sich daran gewöhnt hat.

+0

sieht aus wie das ist die Lösung, aber ich kann nicht finden endgültige Xcode-Projekt, die alle Quelldateien enthalten. Kannst du bitte Antwort bearbeiten, wo befindet sich? – user170317

+0

Dies wird vom Projekt selbst bestimmt. Ich würde vorschlagen, dass Sie die Dokumentation überprüfen, die mit dem Quellcode geliefert wird. – ComicSansMS

3

Von der Wurzel Ihres Projektverzeichnisses.

cmake -G Xcode -H. -B_build 

Dies ist der obigen Antwort ähnlich. Sie verwalten das Out-of-Source-Build jedoch manuell. -B stellt das Build-Zielverzeichnis ein (ich bevorzuge _build). Ich habe versucht, nachzusehen, aber ich konnte es nicht finden. Wenn Speicher dient, gibt es an, wo Ihre CMakeLists.txt lebt.

Ich behalte diesen Befehl in einer .sh/.bat-Datei (abhängig). Auf diese Weise kann ich meine Skripte, die mein Projekt aufbauen, in der Wurzel behalten, wo eine neue Person sie leicht finden kann.

Verwandte Themen