一个程序通常会按照功能需求,进行一定的划分,拆分成不同的子功能,子功能一般会被编译成库,每个库可能包含多个源文件和头文件,并且由不同的人同时进行开发。
可以使用add_library完成静态库和动态的编译:
程序文件结构如下:
├── build
├── CMakeLists.txt
├── install
├── lib_o
│ ├── CMakeLists.txt
│ ├── lib_o.c
│ └── lib_o.h
├── lib_so
│ ├── CMakeLists.txt
│ ├── lib_so.c
│ └── lib_so.h
└── m.c
其中lib_o会被编译为静态库:
//lib_o.h
void call_lib_o();
//lib_o.c
#include <stdio.h>
#include "lib_o.h"
void call_lib_o()
{
printf("this is call_lib_o\n");
}

本文详细介绍了如何使用CMake构建静态库和动态库。通过示例展示了`add_library`指令在创建静态库(STATIC)和动态库(SHARED)时的应用,以及如何设置库的头文件路径。此外,还涵盖了如何在主程序中链接这些库,并在安装时指定目标路径。
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



