[cmake快速入门]初始cmake

1.准备工作

代码main.cpp

#include <iostream>

int main(int, char**) {
    std::cout << "Hello, world!\n";
}

CmakeLists.txt 文件内容

cmake_minimum_required(VERSION 3.0.0)
project(demo VERSION 0.1.0)

set(SRC_LIST main.cpp)

message(STATUS "1.PROJECT_BINARY_DIR = ${PROJECT_BINARY_DIR}")
add_executable(demo ${SRC_LIST})

建立build文件夹,mkdir build

目录结构

liuwang@LAPTOP-9FR3DSS2:~/cmake$ ls
CMakeLists.txt  build  main.cpp

2.开始构建

所有的文件创建完成后,目录中应该存在 main.c 和 CMakeLists.txt 两个文件,一个build文件夹,我们进入build文件夹。
接下来我们来构建这个工程,在这个目录运行  cmake ..

进行cmake结果 

liuwang@LAPTOP-9FR3DSS2:~/cmake/build$ cmake ..
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- 1.PROJECT_BINARY_DIR = /home/liuwang/cmake/build
-- Configuring done
-- Generating done
-- Build files have been written to: /home/liuwang/cmake/build

你会发现,系统自动生成了:
CMakeFiles, CMakeCache.txt, cmake_install.cmake 等文件,并且生成了
Makefile.
现在不需要理会这些文件的作用,以后你也可以不去理会。最关键的是,它自动生成了
Makefile.
然后进行工程的实际构建,在这个目录输入 make 命令,大概会得到如下的彩色输出        

liuwang@LAPTOP-9FR3DSS2:~/cmake/build$ make
Scanning dependencies of target demo
[ 50%] Building CXX object CMakeFiles/demo.dir/main.cpp.o
[100%] Linking CXX executable demo
[100%] Built target demo

如果你需要看到 make 构建的详细过程,可以使用 make VERBOSE=1 或者 VERBOSE=1
make 命令来进行构建。

liuwang@LAPTOP-9FR3DSS2:~/cmake/build$ make VERBOSE=1
/usr/bin/cmake -S/home/liuwang/cmake -B/home/liuwang/cmake/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/liuwang/cmake/build/CMakeFiles /home/liuwang/cmake/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/liuwang/cmake/build'
make -f CMakeFiles/demo.dir/build.make CMakeFiles/demo.dir/depend
make[2]: Entering directory '/home/liuwang/cmake/build'
cd /home/liuwang/cmake/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/liuwang/cmake /home/liuwang/cmake /home/liuwang/cmake/build /home/liuwang/cmake/build /home/liuwang/cmake/build/CMakeFiles/demo.dir/DependInfo.cmake --color=
Dependee "/home/liuwang/cmake/build/CMakeFiles/demo.dir/DependInfo.cmake" is newer than depender "/home/liuwang/cmake/build/CMakeFiles/demo.dir/depend.internal".
Dependee "/home/liuwang/cmake/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/home/liuwang/cmake/build/CMakeFiles/demo.dir/depend.internal".
Scanning dependencies of target demo
make[2]: Leaving directory '/home/liuwang/cmake/build'
make -f CMakeFiles/demo.dir/build.make CMakeFiles/demo.dir/build
make[2]: Entering directory '/home/liuwang/cmake/build'
[ 50%] Building CXX object CMakeFiles/demo.dir/main.cpp.o
/usr/bin/c++     -o CMakeFiles/demo.dir/main.cpp.o -c /home/liuwang/cmake/main.cpp
[100%] Linking CXX executable demo
/usr/bin/cmake -E cmake_link_script CMakeFiles/demo.dir/link.txt --verbose=1
/usr/bin/c++    -rdynamic CMakeFiles/demo.dir/main.cpp.o  -o demo
make[2]: Leaving directory '/home/liuwang/cmake/build'
[100%] Built target demo
make[1]: Leaving directory '/home/liuwang/cmake/build'
/usr/bin/cmake -E cmake_progress_start /home/liuwang/cmake/build/CMakeFiles 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘大望

谢谢你请的咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值