乐闻世界logo
搜索文章和话题

如何使用 cmake 创建共享库?

5 个月前提问
4 个月前修改
浏览次数28

1个答案

1

在使用 CMake 创建共享库时,主要步骤包括编写合适的 CMakeLists.txt 配置文件,配置库源代码,然后使用 CMake 生成和构建库。下面是一个具体的例子和步骤说明:

步骤 1: 准备源代码

首先,你需要准备你的库的源代码。假设你的共享库叫做 mylibrary,并且包含以下文件:

  • MyLibrary.h - 库的头文件
  • MyLibrary.cpp - 库的实现文件

文件内容示例:

MyLibrary.h

cpp
#ifndef MYLIBRARY_H #define MYLIBRARY_H namespace mylib { void printHello(); } #endif

MyLibrary.cpp

cpp
#include "MyLibrary.h" #include <iostream> namespace mylib { void printHello() { std::cout << "Hello from MyLibrary!" << std::endl; } }

步骤 2: 编写 CMakeLists.txt

在源文件旁边创建一个文件名为 CMakeLists.txt 的文件,该文件用于定义构建规则。对于共享库,你可以使用 add_library 函数,并设置库类型为 SHARED

cmake
cmake_minimum_required(VERSION 3.10) # 设置项目名和版本 project(MyLibrary VERSION 1.0) # 指定 C++ 标准 set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) # 创建一个共享库 add_library(mylibrary SHARED MyLibrary.cpp) # 指定库的公共头文件位置 target_include_directories(mylibrary PUBLIC "${PROJECT_SOURCE_DIR}")

步骤 3: 构建共享库

在源代码目录中,打开终端或命令行界面,执行以下命令来生成 Makefile 并构建项目:

sh
mkdir build cd build cmake .. make

这将编译源代码并生成一个共享库文件,例如 libmylibrary.so(在 Linux 上)或 mylibrary.dll(在 Windows 上)。

步骤 4: 使用共享库

在其他项目中使用这个库,你需要包括库的头文件,并链接到生成的共享库。可以通过 CMake 的 find_packageadd_subdirectory(如果库和项目在同一个源码树中)配合 target_link_libraries 使用。

这就是使用 CMake 创建共享库的基本流程。通过这种方式,你可以方便地管理和分发你的 C++ 库。

2024年6月29日 12:07 回复

你的答案