沃特门勒

导航

 

参考文章:https://blog.csdn.net/qq_36666115/article/details/131015894

1)安装开发者工具

我们需要工具从其源代码构建 Boost 库,这里是获取所需库的命令:
sudo apt-get install build-essential g++ python3-dev autotools-dev libicu-dev libbz2-dev libboost-all-dev
 

2)下载需要版本的boost代码包

 

3)提取Tar文件

tar xvf boost_1_80_0.tar.gz
cd boost_1_80_0

4)设置Boost的bootstrap

之后运行给定的命令,该命令将启动存在于 Boost 提取文件夹中的 Bootstrap 脚本。它将开始构建 B2 引擎。另外,它会将编译后的库文件保存在/usr/include/boost
./bootstrap.sh --prefix=/usr/

5)在 Ubuntu 20.04 或 22.04 上安装 Boost

构建 Boost C++ 库
构建完 b2 引擎后,您将在 Boost 目录中看到一个名为b2的可执行文件。我们必须运行它来开始构建 Boost C++ 库。
sudo ./b2 install

6)在C++编程中使用Boost库

现在,无论何时你想使用或包含 Boost 库开始编码,你只需要包含你想使用的 Boost 库的名称。
例如,如果你想使用geometry库:
#include <iostream>

#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point_xy.hpp>
#include <boost/geometry/geometries/polygon.hpp>

namespace bg = boost::geometry;

int main()
{
// Checks if the two geometries overlaps or not.
bg::model::polygon<bg::model::d2::point_xy<double> > poly1;
bg::read_wkt("POLYGON((0 0,1 1,0 1,0.1 0.2))", poly1);
bg::model::polygon<bg::model::d2::point_xy<double> > poly2;
bg::read_wkt("POLYGON((2 2,2 6,6 7,6 1,2 2))", poly2);
bool check_overlap = bg::overlaps(poly1, poly2);
if (check_overlap) {
std::cout << "Overlaps: Yes" << std::endl;
} else {
std::cout << "Overlaps: No" << std::endl;
}

bg::model::polygon<bg::model::d2::point_xy<double> > poly3;
bg::read_wkt("POLYGON((-1 -1,-3 -4,-7 -7,-4 -3,-1 -1))", poly3);
check_overlap = bg::overlaps(poly1, poly3);
if (check_overlap) {
std::cout << "Overlaps: Yes" << std::endl;
} else {
std::cout << "Overlaps: No" << std::endl;
}

return 0;
}
 

7)使用Boost

参考官网文档即可,里面每个函数都有使用的实例教程
https://www.boost.org/doc/libs/1_73_0/libs/geometry/doc/html/geometry/reference.html
posted on 2023-12-13 14:08  沃特门勒  阅读(114)  评论(0编辑  收藏  举报