CMake Practice学习笔记(一):使用cmake编译一个简单的程序

完成一个简单程序的构建

创建一个新的文件夹,包含以下两个文件

  • main.c
#include <stdio.h>
int main()
{
   printf("Welcome to my Blog!\n");
   return 0;
}
  • CMakeLists.txt
PROJECT(HELLO)
SET(SRC_LIST main.c)
MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})

开始构建:

mkdir build
cd build
cmake .. #开始构建
make  #工程的实际构建
./hello #执行生成的可执行文件

在这里插入图片描述
build下生成的文件:
在这里插入图片描述

CMkeLists.txt文件配置的含义

  • PROJECT(HELLO)
     格式:PROJECT( projectname [CXX] [C] [Java])
     1.用来定义工程的名称;这里也可以写成SET(SRC_LIST “main.c”)
     2.隐式的定义两个cmake变量:
    <projectname>_SOURCE_DIR (指代工程路径)
    <projectname>_BINARR_DIR (指代编译路径)
     前面的工程名是用户自主定义的;(这里直接将这两个变量使用MESSAGE打印出来了)
  • SET(SRC_LIST main.c)
     格式:SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE])
     这里主要用来显式的定义变量,如果有多个源文件依次定义即可SET(main.c mian2.c mian3.c)
  • MESSAGE
     格式:MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display”…)
     用于向终端输出用户定义的信息,包含了三种类型:
    SEND_ERROR: 产生错误,生成过程被跳过。
    SATUS: 输出前缀为—的
    FATALERROR: 立即终止所有 cmake 过程
  • ADD_EXECUTABLE(hello ${SRC_LIST})
     定义了这个工程会生成一个文件名为 hello 的可执行文件,相关的源文件是 SRC_LIST 中定义的源文件列表,这里的CMakeLists.txt可以改为简写:
PROJECT(HELLO)
ADDEXECUTABLE(hello main.c)

参考以及pdf笔记下载

发布了82 篇原创文章 · 获赞 124 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_44717317/article/details/104613695