cmake_learn
bash: cmake: 未找到命令...
决定代码的组织方式及其编译方式,也是程序设计的一部分。。因此,我们需要cmake和autotools这样的工具来帮助我们构建并维护项目代码。
其实,cmake和autotools正是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量。
对于大多数项目,应当考虑使用更自动化一些的 cmake或者autotools来生成makefile,而不是上来就动手编写。
这里只给出cmake的一些主要特点:
1.开放源代码,使用类 BSD 许可发布。
2.跨平台,并可生成 native 编译配置文件,在 Linux/Unix 平台,生成 makefile,在 苹果平台,可以生成 xcode,在 Windows 平台,可以生成 MSVC 的工程文件。
3.能够管理大型项目,KDE4 就是最好的证明。
4.简化编译构建过程和编译过程。Cmake 的工具链非常简单:cmake+make。
5.高效率,按照 KDE 官方说法,CMake 构建 KDE4 的 kdelibs 要比使用 autotools 来 构建 KDE3.5.6 的 kdelibs 快 40%,主要是因为 Cmake 在工具链中没有 libtool。
6.可扩展,可以为 cmake 编写特定功能的模块,扩充 cmake 功能。
https://cmake.org/download/ 下载cmake包
.将下载的安装包放到 /usr路径
tar -xvzf cmake.tar.gz
cd cmake-3.10.1/
./bootstrap
gmake install
安装完成
cmake -help
came的使用:
创建工程目录:my_project
cd my_project
mkdir bin、lib、src、include和build目录。这几个目录依次用于放置C++可执行文件、生成的链接库、源文件、头文件和编译生成的文件。当然,还需要创建一个CMakeLists.txt文件用于编译整个工程。
创建 *.cpp 或者 *.c 文件
文件内容:
cmake_mininum_required(VERSION 2.8)
project(hello)
add_excutable(hello hello.c)
project指令会自动创建两个变量:
<projectname>_BINARY_DIR (binary file save path)
<projectname>_SOURCE_DIR(source code save path)
创建的这两个变量,分别与系统中的PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR值相等;
创建build文件夹 进入build 执行cmake ..
生成Makefile 执行make