CMakeLists.txt是CMake的指令文件。
CMake根据该文件生成makefile,最后调用generator来生成可执行程序或者库。
一个工程下每个线(每个文件夹)都需要一个CMakeLists.txt。
假设编写main.cpp实现平方根计算,然后在该目录下新建CMakeLists.txt文档,内容如下:
# 设置最小cmake版本号
cmake_minimum_required(VERSION 3.10)
# 设置工程名
project(CalculateSqrt VERSION 1.0)
# 添加文件
add_executable(CalculateSqrt main.cpp)
2、build
在文件夹中打开命令行或者Linux shell输入
mkdir build
cd build
cmake ..
第一条语句:在根目录下创建一个build文件夹来放置cmake生成的文件,保持源文件目录下的整洁;
第二条语句:打开build文件夹;
第三条语句:运行cmake来配置项目并生成一个本地构建系统。
当然,如果只是简单的测试,也可以不指定build作为生成文件的目录,直接输入。
cmake .
可以看到“.”代表当前目录,“. .”代表上级目录。
完整的cmake语句应该是:
cmake [] -S -B
3、run
根据generator的不同,完成build之后,build文件夹下的文件可能不同。
在命令行输入
cmake --help
查看当前默认的generator(带*号),比如下图
当前默认的generator是vs2019,编译链接之后生成.exe文件
当前generator是unix makefiles。
打开build文件夹可以看到一个makefile文件,也就是与命令行make工具一起使用的工程文件;
还有一个CMakeCache.txt,存储诸如构建系统配置选项等信息的文件,例如camke的版本号,generator的信息等等:
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
调用构建系统来编译/链接这个项目,build文件夹下会生成工程同名文件:
cmake --build .
当然,也可用make命令来编译/链接这个项目。
make
但初学者还是推荐"cmake --build"命令,因为make是默认gcc编译器,如果电脑上没有安装gcc,而电脑默认编译器是vs,就会出错。
如果是用vs编译,会在build下有个debug文件夹,下面有可执行文件.exe;
可以用命令行语句简单地测试下成功与否
.\CalculateSqrt.exe 4
或者
./CalculateSqrt 4
相关代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)