web-dev-qa-db-ja.com

cmakeは既存のソースからXcodeプロジェクトを生成します

これは私が生成を開始したときのものです:

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!

どうすれば修正できますか?私はcmakeが初めてなので、サンプルを高く評価しています。

16
user170317

CMakeは out-of-source ビルドを生成するために使用されます。

ここでの考え方は、コンパイル中に作成されたファイルと元のソースファイルを混在させないことです。実際には、通常、新しい空のビルドディレクトリからCMakeを実行し、ソースディレクトリへのパスを引数として指定します。

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

CMakeによって生成されたすべてのファイル(lot)は、ソースディレクトリはそのままで、buildサブディレクトリに移動します。ビルドアーティファクトのクリーン。

アウトソースビルドの概念は最初は奇妙に思えるかもしれませんが、実際に慣れると実際には非常に便利な方法です。

52
ComicSansMS

プロジェクトディレクトリのルートから。

cmake -G Xcode -H. -B_build

これは上記の答えに似ています。ただし、ソースビルド外を手動で管理しています。 -Bはターゲットビルドディレクトリを設定します(たまたま_buildを好む)。 -Hを調べて再確認しましたが、見つかりませんでした。メモリが提供される場合、CMakeLists.txtが存在する場所を指定します。

このコマンドは、.sh/.batファイル(依存)に保存します。このようにして、新しい人が簡単に見つけることができるルートにプロジェクトをビルドするスクリプトを保持できます。

5
JR Smith