boost使用CMake和MinGW-w64的编译安装
797 字
4 分钟
boost使用CMake和MinGW-w64的编译安装
1.环境
- 操作系统: Windows 10
- Boost 版本: 1.84.0
- GCC 版本: mingw-x64
- CMake
2.Boost 库编译安装
1.下载解压 Boost 源码,并解压
2.安装
- 进入
tools\build\v2\目录(注: 此处最好查阅一下官方文档, 如最新 Boost 1.80.0 版本中只进入到tools\build\目录), 重点是确认当前路径下具有bootstrap.bat(一定要有) 和b2.exe(这个文件没有也没关系,新版本可能没有) 两个文件. - 运行使用 GCC 运行
bootstrap.bat脚本, 注意要使用gcc作为参数. - 运行
.\b2 install --prefix=PREFIX安装 Boost.Build, 其中PREFIX是 Boost.Build 的安装路径, 此处路径为D:\ProgTools\boost_1_54_0\boost_build.
命令:
cd .\tools\build\v2\.\bootstrap.bat gcc# --prefix=自己创建的目标安装路径.\b2 install --prefix=D:\ProgTools\boost_1_84_0\boost_build安装成功后, 在 Boost.Build 安装路径下找到 b2.exe 文件: 在 1.54.0 版本是在 bin 目录下; 而在 1.80.0 版本直接在 Boost.Build 的安装目录下.
3.编译安装 Boost
在 Boost 的根目录使用以下命令使用 GCC 编译安装 Boost:
.\tools\build\v2\b2 --build_dir=D:\ProgTools\boost_1_84_0\boost_build toolset=gcc --build-type=complete stageb2即上文 Boost.Build 路径下的b2.exe文件, 此处可以通过完整路径运行, 也可以将其添加到环境变量从而省去路径部分.-build_dir: 编译生成的中间文件存放目录, 可以不指定.toolset: 编译所用的工具集, 此处使用 GCC 编译所用要特别指明为gcc.-build_type: 构建类型,complete表示构建库的所有支持的编译版本, 包括静态库、动态库、调试版本等
编译需要一段时间, 完成后, 可以在 stage\lib 目录下看到生成的库文件:
3.程序使用
1.测试代码
#include <boost/regex.hpp>#include <iostream>#include <string>
int main() { std::string line("Subject: Aw shell"); boost::regex pat("^Subject: (Re: |Aw: )*(.*)");
boost::smatch matches; if (boost::regex_match(line, matches, pat)) std::cout << "MATCH: " << matches[2] << std::endl; return 0;}2.CMakeLists.txt
set(BOOST_ROOT "D:/ProgTools/boost_1_84_0/") # 指定Boost库的根目录set(Boost_USE_STATIC_LIBS ON) # 设置使用Boost静态库#set(Boost_ARCHITECTURE "-x64") # 指定库架构为x64find_package(Boost REQUIRED) # 查找Boost库include_directories(${Boost_INCLUDE_DIRS}) # 包含Boost库的头文件目录
add_executable(cppexp main.cpp)target_link_libraries(cppexp ${Boost_LIBRARIES}) # 链接Boost库set(BOOST_ROOT "D:/ProgTools/boost_1_54_0/"): 指定 Boost 库的根目录. 由于是编译安装的 Boost 库, 因此一般需要该语句, 否则会出现找不到 Boost 库的情况.find_package(Boost COMPONENTS regex REQUIRED): 查找 Boost 库配置,COMPONENTS选项用于指定所使用的具体的 Boost 库名称, 完整指令格式如下:include_directories(${Boost_INCLUDE_DIRS}): 包含 Boost 库的头文件目录target_link_libraries(cppexp ${Boost_LIBRARIES}): 链接 Boost 库set(Boost_USE_STATIC_LIBS ON): 设置使用 Boost 静态库. 笔者在不使用该语句时会出现运行异常退出的情况, 如下图所示:set(Boost_ARCHITECTURE "-x64"): 指定库架构为x64. 该指令在 1.54.0 版本并不需要, 但在 1.80.0 则必须加上, 这是因为 1.80.0 版本生成的库文件中有x32和x64的后缀, 需要用该选项进行指定, 否则会出现找到 Boost 库但找不到具体模块的情况.
4.MinGW编译Boost库报错处理
1.错误
运行boost编译指令,报错“notice: could not find main target stage
notice: assuming it is a name of file to create.
don’t know how to make stage
…found 1 target…
…can’t find 1 target…”
2.解决
要在根路径执行
cd D:\boostb2 --build-dir="D:\boost_1_80_0\build" --toolset=gcc --build-type=complete stage3.其它
“…found 1 target…”:忽略此类错误也可以执行代码
5.参考链接:
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
boost使用CMake和MinGW-w64的编译安装
https://firefly.cuteleaf.cn/posts/obsidian/boost使用cmake和mingw-w64的编译安装/ 相关文章 智能推荐
1
Eigen使用CMake和MinGW-w64的编译安装
开发笔记 1.环境 平台: Windows 10 编译器: mingw , gcc/g++ CMake Eigen 版本:3.4.0 2. 编译安装 1.官网下载源码 https://eigen.tuxfamily.org/index.php?title=Main Page 2.打开 cm
2
opencv使用CMake和MinGW-w64的编译安装
开发笔记 1.安装环境 提前在电脑中安装以下软件或环境 Windows 10 MinGW x64 CMake OpenCV 4.5.5 2.使用cmake gui配置编译 1.打开 cmake gui,设置源码和生成路径: 第二个路径为自己创建的编译路径:要和第一个同级目录 Where i
3
cmake和opencv的编译安装
开发笔记 1、准备工作 1.1 C/C++编译环境配置 安装gcc和g++ 或者直接安装build essential,安装了该软件包,编译c/c++所需要的软件包也都会被安装。 安装cmake编译工具 cmake包直接安装: 根据实际需要,选择性安装libjpeg dev, libpng
4
FreeType编译与使用
开发笔记 1、linux系统编译安装opencv linux系统中编译安装opencv是开启了freetype的使用,后续则可以直接在C++代码中实现,无需额外编译安装freetype。 2、额外编译安装使用FreeType 注意freetype版本和opencv版本的兼容性 这里编译的是
5
Windows下CMake的命令编译使用
运维部署 1、下载安装Cmake,配置环境变量,检验安装是否正常 2、 下载安装MinGW,配置环境变量,检验安装是否正常 3、具体的编译命令
随机文章 随机推荐