cmake把一个头文件生成lib
时间: 2024-09-12 19:11:43 浏览: 103
CMake是一个跨平台的自动化构建系统,它使用CMakeLists.txt文件来控制构建过程。如果你想要使用CMake来将一个头文件(.h)生成库文件(.lib),通常意味着你想要创建一个接口库(interface library)或者静态库(static library),因为头文件本身并不包含编译后的二进制代码,不能直接生成动态链接库(.dll或.so)或静态库文件(.lib或.a)。
接口库主要用于存放头文件,它不包含实际的编译目标,但可以被其他目标包含。静态库则是将多个对象文件打包成一个文件,可以被其他项目链接。
以下是一个简单的例子来说明如何使用CMake创建一个接口库:
1. 创建CMakeLists.txt文件,并写入以下内容:
```cmake
# 指定CMake的最低版本要求
cmake_minimum_required(VERSION 3.0)
# 设置项目名称
project(MyLibrary)
# 创建接口库,不需要源文件
add_library(MyLibrary INTERFACE)
# 将头文件包含目录添加到接口库中
target_include_directories(MyLibrary INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
```
2. 将你的头文件放在CMakeLists.txt所在的目录或者子目录下。
3. 运行CMake来生成构建系统文件,可以使用命令行或CMake GUI工具。
如果你想要创建一个静态库,你的CMakeLists.txt可能会看起来像这样:
```cmake
# 指定CMake的最低版本要求
cmake_minimum_required(VERSION 3.0)
# 设置项目名称
project(MyStaticLibrary)
# 指定静态库的源文件
add_library(MyStaticLibrary STATIC
my_source_file.cpp
)
# 将头文件包含目录添加到静态库中
target_include_directories(MyStaticLibrary PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
```
然后运行CMake生成构建系统文件。
阅读全文