从零开始 CMake 学习笔记 (C)static-library
开始前先默念三遍口诀:
- Declare a target
- Declare target’s traits
- It’s all about targets
本系列主要根据GitHub上的 cmake-examples 项目进行翻译总结,同时对于不清晰的概念及函数进行查阅理解记录形成。
文章目录
1 介绍
显示了一个 hello world 示例,它首先创建并链接了一个静态库。同上一节类似,使用不同的文件夹来作为源文件和include文件。整体的文件架构如下所示:
1.1 文件树
C-static-library$ tree
.
├── CMakeLists.txt
├── include
└── static
└── Hello.h
└── src
└── Hello.cpp
└── main.cpp
1.2 文件简介
- CMakeLists.txt - 包含了你希望运行的 CMake 命令
cmake_minimum_required(VERSION 3.5)
project(hello_library)
############################################################
//创建一个库
############################################################
//从库源文件生成一个静态库
add_library(hello_library STATIC
src/Hello.cpp
)
target_include_directories(hello_library
PUBLIC
${
PROJECT_SOURCE_DIR}/include
)
############################################################
// 创建一个可执行对象
############################################################
// 添加可执行文件
add_executable(hello_binary
src/main.cpp
)
# 将新创建的静态库 hello_library 链接到新的要生成的 hello_binary 目标
target_link_libraries( hello_binary
PRIVATE
hello_library
)
- include/static/Hello.h - 要包含的头文件,会生成一个静态库链接
#ifndef __HELLO_H__
#define __HELLO_H__
class Hello
{
public:
void print();
};
#