0

0

c++ Boost库怎么安装 c++ Boost库入门使用【指南】

裘德小鎮的故事

裘德小鎮的故事

发布时间:2025-12-23 15:51:08

|

469人浏览过

|

来源于php中文网

原创

Boost库多数为头文件型,直接添加include路径即可使用;少部分需用b2编译生成二进制库并链接,CMake可自动管理依赖。

c++ boost库怎么安装 c++ boost库入门使用【指南】

Boost 库不是靠“安装”就能直接用的,它大部分是头文件库,不需要编译安装;只有少数组件(如 boost::filesystemboost::systemboost::regex 等)需要编译链接。正确使用 Boost 的关键是:分清哪些要编译、哪些直接包含头文件即可,再配好编译器路径和链接选项。

下载并解压 Boost 源码包

从官网 boost.org/download 下载最新版(如 boost_1_85_0.tar.gzboost_1_85_0.7z),解压到本地目录(例如 /opt/boost_1_85_0C:\boost_1_85_0)。解压后你会看到 boost/(头文件主目录)、libs/(示例与源码)、bootstrap.sh(Linux/macOS)或 bootstrap.bat(Windows)等。

头文件型库:直接包含使用(最常用)

Boost 中约 80% 的库(如 boost::optionalboost::variantboost::algorithm::stringboost::container::vector)纯头文件实现,无需编译:

  • 只需把解压路径下的 boost/ 目录添加为编译器的 include 路径(如 -I/opt/boost_1_85_0
  • 在代码中直接 #include 即可使用
  • 例如:
    #include 
    int main() {
    boost::optional x = 42;
    if (x) std::cout << *x << "\n";
    }

需要编译的库:用 b2 构建二进制文件

filesystemsystemthreadregex 等依赖系统 API 或需生成 .so/.dll 的库,必须先构建:

Open Voice OS
Open Voice OS

OpenVoiceOS是一个社区驱动的开源语音AI平台

下载

立即学习C++免费学习笔记(深入)”;

  • 进入解压目录,运行初始化脚本:
    Linux/macOS:./bootstrap.sh --prefix=/usr/local
    Windows(MSVC):bootstrap.bat vc143(对应 VS 版本)
  • 执行构建命令(以静态链接、多线程、不带调试符号为例):
    ./b2 toolset=gcc link=static runtime-link=shared threading=multi stage
    (Windows 可加 address-model=64 指定 64 位)
  • 生成的库文件默认在 stage/lib/ 目录下,如 libboost_filesystem.aboost_filesystem-vc143-mt-x64-1_85.lib
  • 编译时需指定库路径(-L/path/to/boost/stage/lib)和链接名(-lboost_filesystem -lboost_system

用 CMake 管理 Boost(推荐项目级使用)

现代 C++ 项目建议用 CMake 自动查找和链接 Boost:

  • CMakeLists.txt 中写:
    find_package(Boost 1.70 REQUIRED COMPONENTS filesystem system)
    add_executable(myapp main.cpp)
    target_link_libraries(myapp PRIVATE Boost::filesystem Boost::system)
  • 确保环境变量 BOOST_ROOT 指向你的 Boost 解压路径,或通过 -DBOOST_ROOT=/path/to/boost 传给 CMake
  • CMake 会自动处理头文件路径和链接逻辑,省去手动配置麻烦

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

738

2023.08.22

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

537

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

52

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

197

2025.08.29

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

480

2023.08.10

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

143

2025.12.24

Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.2万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号