Muduo04 配置项目的CMake文件

cmake_minimum_required (VERSION 3.0)
project(mymuduo)
 
# mymuduo最终编译成so动态库,设置动态库的路径,放在根目录的Lib文件夹下面
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
 
# 设置调试信息 以及启动C++11语言标准
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -fPIC")
 
# 定义参与编译的源代码文件
aux_source_directory(. SRC_LIST)
# 编译生成动态库mymuduo
add_library(mymuduo SHARED ${SRC_LIST})

cmake_minimum_required (VERSION 3.0)

这行代码设置了运行此 CMake 配置文件所需的最低 CMake 版本

project(mymuduo)

这行代码定义了一个名为 mymuduo 的项目

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

这行代码设置了生成的动态库(共享库)的输出路径

${PROJECT_SOURCE_DIR} 是一个 CMake 内置变量,表示 CMakeLists.txt 文件所在的目录,lib 是子目录。因此,这行代码指定所有生成的库文件(如 .so 文件)都会被放置在项目根目录下的 lib 文件夹中

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -fPIC")

  • -g:生成调试信息,用于调试程序。
  • -std=c++11:启用 C++11 标准,以使用 C++11 的新特性。
  • -fPIC:生成位置无关代码(Position-Independent Code),这对于创建共享库(动态库)是必需的。

aux_source_directory(. SRC_LIST)

这行代码查找当前目录(.)中的所有源文件,并将它们添加到变量 SRC_LIST 中。aux_source_directory 是一个 CMake 命令,用于将指定目录中的所有源文件(如 .cpp 文件)列出。

add_library(mymuduo SHARED ${SRC_LIST})

这行代码将 SRC_LIST 中的所有源文件编译成一个名为 mymuduo 的共享库(动态库)。SHARED 关键字指定要创建的是一个共享库(而非静态库)。最终生成的库文件会被输出到之前指定的 LIBRARY_OUTPUT_PATH(即项目根目录下的 lib 文件夹中)。

注意:将库文件放在根目录的lib目录下,编译过程产生的临时文件放在build目录下

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值