mprpc框架项目动态库编译

mprpc目录下的CMakeLists.txt

cpp 复制代码
#设置cmake的最低版本和项目名称
cmake_minimum_required(VERSION 3.0)
project(mprpc)

#设置项目可执行文件输出的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

#设置项目库文件输出的路径
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#设置项目编译头文件搜索路径 -I
include_directories(${PROJECT_SOURCE_DIR}/src/include)
include_directories(${PROJECT_SOURCE_DIR}/example)

#设置项目库文件搜索路径 -L
link_directories(${PROJECT_SOURCE_DIR}/lib)

#src 包含了mprpc框架所有相关代码
add_subdirectory(src)
#example包含了mprpc框架使用的示例代码
add_subdirectory(example)

在src底下增加一个CMakeLists.txt

cpp 复制代码
#当前目录的所有源文件放入SRC_LIST
aux_source_directory(. SRC_LIST)

#生成SHARED动态库
add_library(mprpc SHARED ${RC_LIST})

callee下的CMakeLists.txt

cpp 复制代码
set(SRC_LIST userservice.cc ../user.pb.cc)
add_executable(provider ${SRC_LIST})#可执行文件

#链接库文件
target_link_libraries(provider mprpc protobuf)

example下的CMakeLists.txt

cpp 复制代码
add_subdirectory(callee)
add_subdirectory(caller)

使用Cmake编译

查看项目工程列表,发现生成动态库

相关推荐
Linux系统运维工程师_郭主任12 小时前
运维人还在被拒offer?现在能考的,只有 RHCE 10.0。
linux
自养Agent12 小时前
MCP Server Boundary Audit Report
linux·服务器·人工智能·windows·大模型·llm
Coisinier13 小时前
docker命令管理镜像及容器
linux·运维·nginx·docker·容器·操作系统
A心有千千结13 小时前
通过 SSH 反向代理让服务器借用本机网络访问 GitHub 的最佳实践
linux·服务器·网络·git·ssh·github
书生执笔画浮沉14 小时前
Linux 内核模块为什么不能自己解决兼容性问题?
linux·c·kernel·update·灵感
15Moonlight14 小时前
Linux网络(03):Socket 编程 TCP
linux·网络·tcp/ip
广州灵眸科技有限公司14 小时前
单芯片同时跑 Linux 与 RT-Thread:RV1126B的AMP异构方案完整拆解
linux·运维·服务器
小雪崩14 小时前
嵌入式学习:Linux驱动开发总结
linux·驱动开发·学习
C++ 老炮儿的技术栈14 小时前
std::atomic 是什么
linux·c语言·网络·c++·visual studio
2401_8628808215 小时前
input 子系统框架 、platform 驱动框架
linux·驱动开发·嵌入式硬件