我现有的目录下有src、include、client、server四个文件夹,我希望用src、include生成一个动态库,用server加这个动态库生成一个程序并封装成service,应该怎么写cmakelist
时间: 2023-05-16 22:05:05 浏览: 167
C++版本使用CMakeLists.txt编译(同目录多个源文件)可执行文件
.txt文件呢?
你可以按照以下方式编写CMakeLists.txt文件:
```
cmake_minimum_required(VERSION 3.5)
project(my_service)
set(CMAKE_CXX_STANDARD 11)
# 添加动态库生成
add_library(my_lib SHARED
src/my_lib.cpp
include/my_lib.h
)
# 添加可执行文件生成
add_executable(my_service
server/main.cpp
)
# 链接动态库
target_link_libraries(my_service my_lib)
# 安装动态库和头文件
install(TARGETS my_lib DESTINATION lib)
install(FILES include/my_lib.h DESTINATION include)
```
这个CMakeLists.txt文件将src和include文件夹中的代码编译成一个名为my_lib的动态库,然后将server文件夹中的代码编译成一个名为my_service的可执行文件,并链接my_lib动态库。最后,安装my_lib动态库和头文件到系统目录中。
阅读全文