cmake从现有来源生成Xcode项目

use*_*317 18 macos cocoa cmake

当我开始生成时,这就是我所拥有的:

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!
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我是cmake的新手,样品很受欢迎.

Com*_*sMS 54

CMake用于生成源外构建.

这里的想法是您不要将编译期间创建的文件与原始源文件混合在一起.实际上,您通常从一个新的空构建目录运行CMake,并将源目录的路径作为参数.

cd IXCSoftswitch
mkdir build
cd build
cmake -G Xcode ..
Run Code Online (Sandbox Code Playgroud)

CMake生成的所有文件(可能很多)现在将进入build子目录,而源目录保持清除构建工件.

源外构建的概念起初可能看起来很奇怪,但是一旦你习惯它,它实际上是一种非常方便的工作方式.


JR *_*ith 6

从项目目录的根目录.

cmake -G Xcode -H. -B_build
Run Code Online (Sandbox Code Playgroud)

这与上面的答案类似.但是,您手动管理源外构建.-B设置你的目标构建目录(我碰巧更喜欢_build).我试着抬头-H要仔细检查,但找不到它.如果内存服务,它指定您的CMakeLists.txt所在的位置.

我将此命令保存在.sh/.bat文件中(取决于).这样,我可以保留我的脚本,在根目录中构建我的项目,新人可以轻松找到它们.