打开vs2017,按如下图,依次点击文件-新建-项目
选择CMake,然后点击确定
创建好项目后,结构如下
接下来,我们先运行下这个项目,看下具体效果,双击如下按钮
它会提示你选择一个启动项目,我们将CMakeProject1.cpp作为启动项目,只需要双击CMakeProject1.cpp就行了,双击后,效果如下
此时再点击运行按钮,就可以正常运行了
运行后,你会发现一个黑色的小窗口一闪而过,这说明程序确实执行了,执行完后,立马就关闭了。所以才会出现这个一闪而过的小窗口。
为了能够观察到正常的效果,我们在main()函数中添加system("pause”),当执行这行代码时,程序可以暂停。代码如下
#include "CMakeProject1.h"
using namespace std;
int main()
{
cout << "Hello CMake。" << endl;
//添加的代码
system("pause");
//添加的代码
return 0;
}
此时,再次运行,你会看到如下的界面
现在来对这个项目做个简单的解释。
当前我们创建的项目是一个C++的项目,由于C++是在C的基础上进行的进一步功能拓展,所以我们可以在C++的源代码里面写部分C的代码,因此前期学习,我们可以在C++项目里,学习一些C的代码知识。
.cpp结尾的文件,如CMakeProject1.cpp,就是一个C++的源代码文件
.c结尾的文件,如CMakeProject1.c就是一个纯C的源代码文件,由于C++是在C的基础上进行扩展的一门编程语言,所以在C++的代码里,也可以写一些C的代码。
下面开始对这个项目的代码做个简单的解释
int main()
{
cout << "Hello CMake。" << endl;
//添加的代码
system("pause");
//添加的代码
return 0;
}
main()在c和C++里都表示函数的入口点,类似于java中的public static void main(String[] args){}
return 0 在c和C++里都表示成功结束,这是一种规范约定的写法,你非得写成return -1也没问题。
#include "CMakeProject1.h"
include 类似于java中的import ,作用是导入其他的函数声明,或者是类声明,方便在本文件代码中使用该.h文件中声明的函数或者是类。
using namespace std;
using 是使用的意思,表示使用std这个代码块里面所定义的类或者是函数,如下的cout,就是std中所定义的一个变量,该变量中保存的是一个输出流的地址。正是因为cout表示一个输出流,我们才可以通过它来向屏幕输出内容。
namespace类似于java中的包,std 类似具体的包名。
cout << "Hello CMake。" << endl;
cout是一个输出流,<<后面跟上具体要输出的内容。endl表示换行\n
system("pause");
程序执行这行代码会暂停
最后来说下这个CMake
CMake是一个跨平台的项目构建工具,它类似于AndroidStudio中的Gradle
CMakeLists.txt 就类似于AndroidStudio中的build.gradle
在运行项目时,CMake将根据CMakeLists.txt中所定义的规则,进行项目构建。