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编译

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

相关推荐
坤坤子吖2 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
阡陌数智2 小时前
Claude API新版本重大变更与安全升级指南
java·linux·安全
奶茶树2 小时前
【Linux】环境开发工具(vim,gcc,g++,Makefile)
linux·运维·vim
木子欢儿6 小时前
国内 macOS/Linux 安装 rust
linux·运维·服务器·macos·rust
say_fall6 小时前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
进击的荆棘6 小时前
Linux系统——线程同步与互斥
linux·运维·服务器·策略模式·同步·互斥·posix
橙橙笔记6 小时前
QT的学习第四部分
linux·qt·学习·音视频
.道阻且长.7 小时前
Linux基本开发工具:gdb和cgdb的使用
linux·运维·服务器·开发语言
叼烟扛炮7 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
Android系统攻城狮7 小时前
Linux FFmpeg深度解析之av_guess_format调用流程与实战(三十六)
linux·运维·服务器·ffmpeg·ffmpeg音视频进阶