编译boost_1_80_0

比较简单,仅供小白参考哈。
先科普一个工具的概念:VS的命令工具框。很多人在编译库的时候不清楚该选择哪个工具框。

VS命令工具狂 

在 VS 官网上也有对各个命令框功能的介绍: https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=vs-2019
在使用中大家根据自己要编译生成的库运行的环境灵活选择命令框使用
开发人员命令提示符 - 将环境设置为使用 32 位 x86 本机工具生成 32 位 x86 本机代码。
x86 本机工具命令提示符 - 将环境设置为使用 32 位 x86 本机工具生成 32 位 x86 本机代码。
x64 本机工具命令提示符 - 将环境设置为使用 64 位 x64 本机工具生成 64 位 x64 本机代码。
x86_x64 兼容工具命令提示符 - 将环境设置为使用 32 位 x86 本机工具生成 64 位 x64 本机代码。
x64_x86 兼容工具命令提示符 - 将环境设置为使用 64 位 x64 本机工具生成 32 位 x86 本机代码。

开始正文:

1.下载boost库,本人下载的是boost_1_72_0版本,下载完后解压到当前文件夹;
boost库下载链接:下载链接

2.打开开始菜单,找到Visual Studio 2019文件夹里x86 Native Tools Command Prompt并打开(此处是编译32位环境的库)。

E:>cd E:\boost_1_80_0

 E:\boost_1_80_0>booststrap.bat
3.先切换到boost解压后的目录,我这里路径是E:\Packet\boost_1_72_0,然后再执行bootstrap.bat,执行完后会在当前目录生成b2.exe可执行文件,如下图红色部分。


4.在命令框继续输入以下内容,开始编译:E:\boost_1_80_0> b2 install --toolset=msvc-14.2 --build-type=complete --prefix=“E:\Packet\boost_1_80_0\compile” link=shared runtime-link=shared runtime-link=static threading=multi debug release
备注:本人上述编译是编译整个boost库,如果只需要编译某个库或者不需要某个库可通过参数with/without 库名称去实现。
大概介绍下上述编译条件:
install 是安装头文件和库文件,后面的prefix=“E:\Packet\boost_1_80_0\compile” 也是配合install参数使用,设定生成的include和lib路径;include也可以换stage,那么只生成lib文件。
toolset=msvc-14.2 vs2019对应msvc版本为14.2,不是16开头;
上述参数可选也可不设,直接运行b2.exe;

在compile文件夹有相应内容。
5.编译完成后在设定的路径下生成include和lib文件夹,这样只要在使用boost库时候只要包含对应的文件即可。

以上,就是整个编译boost库过程。

努力、奋斗!

原文链接:https://blog.csdn.net/ASCE_Python/article/details/105599757

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果你想要响应OpenCV的Mat数据到浏览器中,可以将Mat数据编码为JPEG或PNG格式的数据,然后将其作为响应体发送给客户端。以下是一个示例代码: ```c++ #include <iostream> #include <boost/asio.hpp> #include <opencv2/opencv.hpp> #include <boost/beast.hpp> using namespace std; using namespace boost::asio; int main() { io_service service; ip::tcp::acceptor acceptor(service, ip::tcp::endpoint(ip::tcp::v4(), 8080)); cout << "Server started on port 8080" << endl; while (true) { ip::tcp::socket socket(service); acceptor.accept(socket); cv::VideoCapture cap(0); if (!cap.isOpened()) { cerr << "Failed to open camera" << endl; return -1; } cv::Mat frame; vector<uchar> buf; vector<int> params = {cv::IMWRITE_JPEG_QUALITY, 80}; string contentType = "image/jpeg"; while (true) { cap >> frame; cv::imencode(".jpg", frame, buf, params); string body(buf.begin(), buf.end()); boost::beast::http::response<boost::beast::http::string_body> res{ boost::beast::http::status::ok, 11 }; res.set(boost::beast::http::field::server, BOOST_BEAST_VERSION_STRING); res.set(boost::beast::http::field::content_type, contentType); res.keep_alive(true); res.body() = body; res.prepare_payload(); boost::beast::http::write(socket, res); if (!res.keep_alive()) { break; } } } return 0; } ``` 该示例程序会启动一个服务器,监听端口8080。当有客户端连接成功后,它会从摄像头中获取图像数据,将其编码为JPEG格式的数据,并将其作为响应体发送给客户端。浏览器可以通过访问http://localhost:8080来查看实时视频。 注意,该示例程序中的响应格式为HTTP协议的响应格式,可以根据需要进行调整。另外,该示例程序中没有考虑多线程等并发问题,仅供参考。如果需要实现更复杂的功能,可以参考boost asio和boost beast文档进行扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值