【Windows Cmake工程配置Boost库】

背景

Windows环境下使用cmake开发程序,如图需要用到boost库,但是从官网下载的boost库源码没有编译成功,于是从网上下载boost预编译库,直接配置。
在这里插入图片描述

配置流程

1. 下载Boost库

官网下载地址:https://www.boost.org/
CSDN下载地址:boost_1_60_0下载
官网下载较慢,推荐CSDN下载,解压后文件夹路径如下图:

在这里插入图片描述

2. 配置环境变量

添加系统环境变量

Boost_ROOT = D:\boost_precompiled //此处替换成你的boost路径

下图是我的配置路径
在这里插入图片描述
重启 CMake 或 IDE 使其生效。
验证环境变量是否生效​​:

# 在 CMakeLists.txt 中打印变量值
message(STATUS "Boost root: ${BOOST_ROOT}")

若使用 ​​动态链接​​(需依赖 DLL 文件),需将dll文件夹路径配置进系统Path变量中,如下图:
在这里插入图片描述

3. 修改CmakeLists

cmake_minimum_required(VERSION 3.12)
project(MonCommon)

# 添加静态库目标
add_library(MonCommon STATIC
    ${COMBASE_HercY}  # 替换为实际源文件列表(如 src1.cpp src2.cpp)
)

if(WIN32)
    # 启用 CMP0074 策略(优先使用 Boost_ROOT 变量)
    cmake_policy(SET CMP0074 NEW)

    # 设置 Boost 根目录(从环境变量或手动指定)
    set(Boost_ROOT "$ENV{Boost_ROOT}")  # 或直接写死路径,如 "D:/boost_1_60_0"
    message(STATUS "Boost root: ${Boost_ROOT}")

    # 设置头文件和库路径
    set(BOOST_INCLUDEDIR "${Boost_ROOT}/include")
    set(BOOST_LIBRARYDIR "${Boost_ROOT}/lib/Win32")  # 替换为实际库目录

    # 查找 Boost 组件
    find_package(Boost REQUIRED COMPONENTS filesystem system
        PATHS ${Boost_ROOT}
        PATH_SUFFIXES Win32
        NO_DEFAULT_PATH
    )

    # 添加包含目录
    target_include_directories(MonCommon PRIVATE
        ${BOOST_INCLUDEDIR}
        "${PROJECT_SOURCE_DIR}/include"
        "${PROJECT_SOURCE_DIR}/include/thread"
        "$ENV{Qt_DIR}/include"
    )

    # 链接 Boost 库(自动或手动)
    target_link_libraries(MonCommon PRIVATE
        ${Boost_LIBRARIES}  # 自动链接(推荐)
        # 或手动指定库文件(若自动查找失败)
        # "${BOOST_LIBRARYDIR}/boost_filesystem-vc120-mt-1_60.lib"
        # "${BOOST_LIBRARYDIR}/boost_system-vc120-mt-1_60.lib"
    )

    # 添加编译定义
    target_compile_definitions(MonCommon PRIVATE
        -DWIN32
        -DPTW32_STATIC_LIB  # 修正原图中的错误宏定义
    )
endif()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阁不鸽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值