1. 项目概述
在Ubuntu环境下使用CMake构建项目时,经常会遇到需要链接第三方库的情况。本文将以Livox激光雷达SDK为例,详细讲解如何编写一个完整的CMakeLists.txt文件,实现以下功能:
- 定位并包含第三方库的头文件(livox_sdk.h和livox_def.h)
- 链接静态库文件(liblivox_sdk_static.a)
- 将测试程序test.cpp编译为可执行文件test_app
这个案例非常典型,涵盖了CMake使用中最常见的三个需求:头文件包含、库文件链接和可执行文件生成。通过这个实例,你将掌握CMake的基本语法和项目组织方法。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与项目结构
2.1 系统环境要求
在开始之前,请确保你的Ubuntu系统已安装以下工具:
- CMake 3.10或更高版本
- GNU Make
- GCC/G++编译器(支持C++14标准)
可以通过以下命令检查版本:
bash复制cmake --version
g++ --version
make --version
如果缺少任何组件,可以使用apt安装:
bash复制sudo apt update
sudo apt install cmake make g++
2.2 项目目录结构
合理的目录结构是项目成功的基础。建议采用如下布局:
code复制LivoxTest/
├── Livox-SDK/ # 第三方库目录
│ ├── livox_sdk.h # 头文件1
│ ├── livox_def.h # 头文件2
│ └── liblivox_sdk_static.a # 静态库
├── test.cpp # 测试源代码
└── CMakeLists.txt # 构建配置文件
这种结构将第三方库文件与项目代码分离,既保持了整洁,又便于管理依赖关系。在实际项目中,你可能会遇到更复杂的结构,但基本原理相同。
3. CMakeLists.txt详解
3.1 基础配置
让我们逐行分析CMakeLists.txt的核心内容:
cmake复制cmake_minimum_required(VERSION
