CGAL项目基于CMake生成Makefile构建及相关术语疑问咨询
关于CMake生成Unix Makefiles的疑问解答
对文档语句的解释
"A hierarchy of UNIX makefiles is generated into the build tree"
这句话的意思是:CMake会在你指定的构建目录(也就是所谓的build tree)里生成一套层级化的Makefile文件结构,而非单个独立的Makefile。如果你的项目包含子目录,CMake会在每个子目录下生成对应的Makefile,同时在根构建目录生成顶层Makefile——顶层Makefile会负责统筹调用各个子目录的Makefile,完美匹配你项目的目录结构,保证各个模块的构建流程按顺序执行。
生成可用Makefile的步骤
推荐采用out-of-source构建(源码目录和构建目录分离,避免污染源码),具体操作如下:
- 创建并进入单独的构建目录
mkdir build && cd build - 运行CMake指定生成Unix Makefiles(Unix-like系统下默认就是这个生成器,显式指定更稳妥)
这里的cmake .. -G "Unix Makefiles"..指向你的CMakeLists.txt所在的源码根目录,若文件在其他路径,替换成对应路径即可。 - 此时构建目录中已经生成了完整的层级Makefile,直接运行
make就能启动项目构建
想要加速构建的话,还可以加make-j参数指定并行线程数,比如make -j4(数字根据你的CPU核心数调整)
内容的提问来源于stack exchange,提问作者klysa
相关产品推荐
相关产品推荐

