写一个多个文件c库CMakeLists
时间: 2024-01-14 09:02:40 浏览: 78
C++版本使用CMakeLists.txt编译(同目录多个源文件)可执行文件
好的,下面是一个简单的多文件 C 库的 CMakeLists.txt 文件。
```cmake
# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)
# 设置编译器为 GCC
set(CMAKE_C_COMPILER gcc)
# 设置项目名称和版本号
project(mylib VERSION 1.0.0)
# 添加头文件目录
include_directories(include)
# 添加源文件
set(SOURCES src/foo.c src/bar.c)
# 生成共享库
add_library(${PROJECT_NAME} SHARED ${SOURCES})
# 设置共享库的版本号
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
# 设置共享库的输出名称
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME mylib)
# 安装共享库和头文件
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
install(DIRECTORY include/ DESTINATION include)
```
上面的 CMakeLists.txt 文件将会编译出一个名为 `mylib` 的共享库,包含 `src/foo.c` 和 `src/bar.c` 两个源文件,并将头文件安装到 `include/` 目录下,共享库安装到 `lib/` 目录下。
当你需要使用这个库时,你可以使用以下代码进行编译和链接:
```cmake
# CMakeLists.txt
# 设置 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)
# 设置项目名称和版本号
project(myapp VERSION 1.0.0)
# 添加可执行文件
add_executable(myapp main.c)
# 添加链接库
target_link_libraries(myapp mylib)
```
上面的 CMakeLists.txt 文件将会编译出一个名为 `myapp` 的可执行文件,使用 `mylib` 的共享库。
阅读全文