CMake工具使用

一个简单的CMake案例

新建一个项目03demo,并在该文件下:

创建main.c文件

#include <stdio.h>

int main()
{
	printf("Hello World!\n");
	return 0;
}

创建CMakeLists.txt文件

# CMake需要的最低版本号
cmake_minimum_required (VERSION 2.8)

# 项目信息,表示该项目是03demo
project (03demo)

# 指定生成信息,表示需要将main.c生成main
add_executable(main main.c)

执行命令:

$ cmake .
$ make

可以生成main执行文件

同一目录,多个源文件

新建一个项目04demo,并在该文件夹下:

创建main.c文件

#include <stdio.h>
#include "function01.h"

int main()
{
	printf("Hello World!\n");
	sayHi();
	return 0;
}

创建function01.h文件

#include <stdio.h>
void sayHi();

创建function01.c文件

#include "function01.h"

void sayHi()
{
	printf("Hi, world!\n");
}

创建CMakeLists.txt文件

# CMake需要的最低版本号
cmake_minimum_required (VERSION 2.8)

# 项目信息,表示该项目是04demo
project (04demo)

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory (. DIR_SRCS)

# 指示变量 DIR_SRCS 中的源文件需要编译成一个名称为 main 的可执行文件
add_executable (main ${DIR_SRCS})

执行命令:

$ cmake .
$ make

可生成可执行文件main

多个目录,多个源文件

新建项目05demo,并在该文件夹下:

创建main.c文件

#include <stdio.h>
#include "function01.h"

int main()
{
	printf("Hello World!\n");
	sayHi();
	return 0;
}

创建CMakeLists.txt文件

# CMake需要的最低版本号
cmake_minimum_required (VERSION 2.8)

# 项目信息,表示该项目是05demo
project (05demo)

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory (. DIR_SRCS)

# 添加 say 子目录
add_subdirectory (say)

# 指定生成目标 
add_executable (main main.c)

# 添加链接库
target_link_libraries(main function01)

创建say文件夹,并在该文件夹下:

创建function01.h文件

#include <stdio.h>
void sayHi();

创建function01.c文件

#include "function01.h"

void sayHi()
{
	printf("Hi, world!\n");
}

创建CMakeLists.txt文件

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory (. DIR_LIB_SRCS)

# 生成链接库
add_library (function01 ${DIR_LIB_SRCS})

05demo文件夹下,执行命令:

$ cmake .
$ make

生成可执行文件夹main

[dm href=’http://hahack.com/codes/cmake/’]参考资料:CMake 入门实战[/dm]

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部