教程:导出已编译的依赖项
本教程将逐步讲解如何使用 kmpkg 导出已编译的依赖项。这一功能在跨项目共享库、简化分发流程时尤为实用;此外,你还可以将导出的归档包传输到无网络连接的环境(离线/隔离网络场景),适配离线部署需求。
前提条件
- 安装 Visual Studio(需包含“C++ 开发工作负载”和“CMake 组件”)
- 安装 Git
- 安装 kmpkg 工具
步骤 1 - 安装 fmt 库
打开终端,导航到 kmpkg 的安装目录,然后为目标平台安装 fmt 库:
kmpkg install fmt:x64-windows
将 x64-windows 替换为你的目标三元组(triplet)(如 x86-windows、x64-linux 等)。
步骤 2 - 导出 fmt 库
安装完成后,执行以下命令导出 fmt 库:
kmpkg export fmt:x64-windows --zip
你会看到类似如下的输出:
The following packages are already built and will be exported:
fmt:x64-windows
* kmpkg-cmake:x64-windows
* kmpkg-cmake-config:x64-windows
Additional packages (*) need to be exported to complete this operation.
Exporting kmpkg-cmake:x64-windows...
Exporting kmpkg-cmake-config:x64-windows...
Exporting fmt:x64-windows...
Creating zip archive...
Zip archive exported at: C:\dev\kmpkg\kmpkg-export-20231106-164550.zip
To use exported libraries in CMake projects, add -DCMAKE_TOOLCHAIN_FILE=[...]/scripts/buildsystems/kmpkg.cmake to your CMake command line.
该命令会生成一个 ZIP 归档包,包含使用 fmt 库所需的所有文件(二进制文件、头文件、配置文件等)。你可以将这个归档包传输到离线环境中部署。如需查看所有支持的导出格式,请参考 export 命令文档。
步骤 3 - 在新 CMake 项目中使用 fmt 库
要在新的 CMake 项目中使用导出的 fmt 库,请按照以下步骤操作:
-
将导出的 ZIP 包解压到本地已知路径(或传输到离线环境后解压);
-
创建一个新的目录作为 CMake 项目根目录,并进入该目录;
-
创建
CMakeLists.txt文件,写入以下内容:cmake_minimum_required(VERSION 3.10)
project(HelloWorld)
find_package(fmt CONFIG REQUIRED)
add_executable(HelloWorld main.cpp)
target_link_libraries(HelloWorld PRIVATE fmt::fmt) -
编写
main.cpp文件,引入fmt并打印“Hello, World”:#include <fmt/core.h>
int main()
{
fmt::print("Hello, World!\n");
return 0;
} -
构建项目 - 在终端中,从项目根目录执行以下命令:
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=<解压包路径>/scripts/buildsystems/kmpkg.cmake
cmake --build build注意:将
<解压包路径>替换为你实际的 ZIP 包解压路径。 -
运行可执行文件:
..\build\Debug\HelloWorld.exe
后续步骤
至此,你已完成 fmt 库的导出,并在独立项目中成功使用该库。你可以将此流程推广到其他依赖项,满足跨项目、离线环境的依赖复用需求。