cmake多个目录文件生成一个动态库

在CMake中创建一个动态库(或共享库)并将多个目录中的源文件编译进这个库是一个常见需求。下面是如何实现这一目标的步骤:

  1. 创建CMakeLists.txt文件
    在项目的根目录下创建一个CMakeLists.txt文件。这个文件将包含指导CMake如何构建项目的指令。

  2. 指定CMake的最小版本和项目名称
    cmake
    Copy code
    cmake_minimum_required(VERSION 3.0)
    project(MyLibrary)
    这里,cmake_minimum_required指定了该项目需要的CMake的最小版本。project命令定义了项目的名称。

  3. 收集源文件
    接下来,你需要收集所有需要编译进动态库的源文件。如果源文件分散在多个目录中,你可以使用file(GLOB …)命令来收集这些文件。例如,如果你的源文件分布在src和include目录下,可以这样做:

cmake
Copy code
file(GLOB SOURCES
“src/.cpp"
"include/
.cpp”
)
这会将src和include目录下所有的.cpp文件添加到SOURCES变量中。

  1. 创建动态库
    使用add_library命令根据收集到的源文件创建动态库:

cmake
Copy code
add_library(MyLibrary SHARED S O U R C E S ) 这里, M y L i b r a r y 是动态库的名称, S H A R E D 关键字指示 C M a k e 这将是一个共享库, {SOURCES}) 这里,MyLibrary是动态库的名称,SHARED关键字指示CMake这将是一个共享库, SOURCES)这里,MyLibrary是动态库的名称,SHARED关键字指示CMake这将是一个共享库,{SOURCES}变量包含了所有的源文件。

  1. 指定包含目录(可选)
    如果你的头文件不在源文件的同一目录下,你可能需要使用target_include_directories命令来指定头文件的位置。例如,如果头文件位于include目录下:

cmake
Copy code
target_include_directories(MyLibrary PUBLIC include)
这样,编译器就能找到所有的头文件了。

  1. 构建项目
    在项目的根目录下,打开终端或命令提示符,执行以下命令来生成构建系统并构建项目:

bash
Copy code
cmake -S . -B build
cmake --build build
这会在一个名为build的目录中创建项目的构建系统,并编译生成动态库。

这个简单的例子演示了如何在CMake中从多个目录中的源文件创建一个动态库。根据项目的实际需求,CMakeLists.txt文件可能需要包含更多的配置指令,例如设置编译选项、链接库或处理平台特定的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值