优势
操作层面优势——简化
-
跨平台。
make编写对特定平台透明。开发者按照语法写make,CMake自动生成不同平台上原生构建工具需要的构建文件;
-
自动搜索你的软件所依赖的库、头文件,以及实现共享库和静态库的构建切换;
-
自动生成项目文件依赖关系;
结构层面优势——清晰
-
项目的构建目录和源码目录分离;
随时删除构建文件而不用担心会误删掉项目的源码文件
-
配置阶段增加选择组件的权限;
实例一
流程
-
构建目录结构(bin;Test[math]);
-
math子目录下编译出一个静态库目标;
add_library (${MATH_LIB} STATIC math.cpp);
-
程序来引用数学库;
CMakeLists.txt文件需要考虑的要素内容:
项目名; 编译器; boost库; 库目标名; 文件搜索路径; 维护LIBS变量; 可执行文件数学库;
-
cma