CMake+MSVC手动引入boost库时需要关闭auto-link

问题描述
支持自动连接的编译器可以通过#program 语句自动生成二进制需求。这有时候造成苦恼,下载的boost库和头文件往往是放在一个独立的文件夹,没有任何安装配置,这时候就需要手动设置boost的位置,否则自动引入机制会覆盖你的手动设置,浪费时间,让我现在只想说一个植物。

# 添加预编译指令,关闭TM的自动链接
add_compile_options(-DBOOST_ALL_NO_LIB)
# 正常的cmake代码,添加依赖开始
# 库文件前缀,MSVC的编译结果往往没有lib,自动连接会给你加上lib,cao
set(Boost_LIB_PREFIX "")
add_compile_definitions(-DBoost_LIB_PREFIX="")

# boost 根目录,修改双引号内的路径
cmake_path(CONVERT "path/to/boost" TO_CMAKE_PATH_LIST BOOST_ROOT)
# boost 编译的二进制结果,修改双引号内的路径,下面是放在boost根目录里lib64-msvc-14.3文件夹内
cmake_path(APPEND BOOST_PRE_BINARY ${BOOST_ROOT} "lib64-msvc-14.3")
# 为find_package指明方向
list(APPEND CMAKE_MODULE_PATH "${BOOST_PRE_BINARY}/cmake")
# 添加boost头文件路径
cmake_path(SET BOOST_INC ${BOOST_ROOT})
include_directories(${BOOST_INC})
# 搜索库文件 locale,需要别的可以在后面加
find_package(Boost REQUIRED COMPONENTS locale)
# Done

all in one + 不透明的机制有时候真的好浪费时间,默认缺失会让人主动寻找到结果,默认提供一个不知道在哪发挥作用的解法真的浪费人的时间!浪费时间==谋财害命!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值