上位机图像处理和嵌入式模块部署(boost库的使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        作为c++程序员来说,除了qt之外,另外值得学的开发库就是boost。boost本身包含的内容非常多,基本我们常用的功能都已经包括在内。而且,boost支持不同的平台,既支持windows,又支持linux,这对我们来说就非常地方便。另外,boost本身就是开源库,没有版权的问题。之前,我们已经谈过如何在linux环境下面使用boost(https://feixiaoxing.blog.csdn.net/article/details/132397384),今天主要谈一下如何在windows平台下面使用boost库。

1、下载boost代码,编译

        如果需要下载boost代码,可以直接到官网下载即可,地址在这,

https://www.boost.org/

        编译的方法也比较简单,主要就是输入这两个命令,

bootstrap.bat
b2.exe

2、配置环境

        如果我们需要测试boost库,在创建vs项目之后,一般需要配置一下编译环境。第一个是include目录的位置,

        接着是lib目录的位置,

        最后就是需要添加的lib库文件,

        这里面需要注意的地方,就是务必确认当前设置的平台是32位还是64位、设置的版本是debug版本还是release版本,不然很容易设置之后,完全不起效果。导致自己对自己过往的开发经验都会产生怀疑。

3、测试代码1

        首先我们编写一个简单bind代码,验证是否ok。这份代码不需要链接库,一般保证头文件目录设置正确,就能编译通过,

#include<iostream>
#include "boost/bind.hpp"

using namespace std;
using namespace boost;

int fun(int x, int y)
{
	return x + y;
}

int main()
{
	int m = 10;
	int n = 20;
	cout << boost::bind(fun, _1, _2)(m, n) << endl;

	return 0;
}

4、测试代码2

        和之前一个测试用例相比较,这个测试用例稍微复杂点,涉及到了多线程。不过boost里面的多线程使用比较简单,学习难度不大。只是编译的时候,需要设置好lib目录的位置,同时设置好链接的文件,这样就可以编译通过,并且运行起来。

#include <boost/thread/thread.hpp> 
#include <iostream> 
using namespace std;

void helloA()
{
	std::cout << "I'm thread A !  --- Start " << std::endl;
	Sleep(3000);
	std::cout << "I'm thread A !  --- OVER " << std::endl;

}

void helloB()
{
	std::cout << "I'm thread B !  --- Start " << std::endl;
	Sleep(3000);
	std::cout << "I'm thread B !  --- OVER " << std::endl;

}

int main(int argc, char* argv[])
{
	boost::thread thrdA(&helloA);
	boost::thread thrdB(&helloB);
	thrdA.join();
	thrdB.join();
	return 0;
}

5、测试代码3

        除了上面谈到的demo,另外一个boost比较重要的功能就是network,也就是网络编程。这部分,大家可以自己多多测试验证一下。官网有两个文件,分别是server.cpp和client.cpp,比较适合拿来学习和验证,环境配置和demo2是一样的,不需要修改就能编译通过。

https://www.boost.org/doc/libs/1_76_0/doc/html/boost_asio/example/cpp03/chat/chat_server.cpp
https://www.boost.org/doc/libs/1_76_0/doc/html/boost_asio/example/cpp03/chat/chat_client.cpp

        测试的话,就是./chat_server 127.0.0.1 20000,接着./chat_client 127.0.0.1 2000连接server,这样client输入什么,console就会回显什么。

6、后续

        boost本身内容还是比较多的,建议大家多多学习、多多练习一下,重要性方面可能仅次于qt。当然如果没有界面需求的话,那么boost几乎是最好的选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/394351.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT实战100例 - (17) 用ChatGPT实现音频长度测量和音量调整

文章目录 ChatGPT实战100例 - (17) 用ChatGPT实现音频长度测量和音量调整获取音频长度pydub获取音频长度获取时长精确到秒格式设定 mutagen获取音频长度 调整音量视频音量调整注意事项 ChatGPT实战100例 - (17) 用ChatGPT实现音频长度测量和音量调整 老王媳妇说上次那个pip挺好…

分布式学习笔记

1. CAP理论 Consistency&#xff08;一致性&#xff09;&#xff1a;用户访问分布式系统中的任意节点&#xff0c;得到的数据必须一致。 Availability&#xff08;可用性&#xff09;&#xff1a;用户访问集群中的任意健康节点&#xff0c;必须得到相应&#xff0c;而不是超时…

VSCODE上使用python_Django

接上篇 https://blog.csdn.net/weixin_44741835/article/details/136135996?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136135996%22%2C%22source%22%3A%22weixin_44741835%22%7D VSCODE官网&#xff1a; Editing Python …

汽车网络安全--关于供应商网络安全能力维度的思考

目录 1.关于CSMS的理解 2.OEM如何评审供应商 2.1 质量评审 2.2 网络安全能力评审 3.小结 1.关于CSMS的理解 最近在和朋友们交流汽车网络安全趋势时&#xff0c;讨论最多的是供应商如何向OEM证明其网络安全能力。 这是很重要的一环&#xff0c;因为随着汽车网络安全相关强…

AI 文生图提示词分类(合集 · 第一季)

一、时间和季节 Time and Season 1、时间描述 Time Description 比如&#xff0c;日出、黄昏、夜晚、清晨 / Sunrise, Sunset, Night, Early Morning 2、季节变化 Seasonal Changes 比如&#xff0c;春天、夏天、秋天、冬天 / Spring, Summer, Autumn, Winter 二、场景描述 Sce…

UE5中的DataTable说明

创建DataTable 在编辑器中创建 在文件夹空白处右击&#xff0c;选择Miscellaneous/DataTable&#xff0c;如图&#xff1a; 使用代码创建 // 创建DataTable实例 UDataTable* MyDataTable NewObject(); // 创建一个行结构体 UStruct* RowStruct UStruct::CreateEmpty(); // 添…

字符设备驱动分步注册实现LED驱动的编写

头文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t;#define RCC 0x50000A28 #define LED1_ADDR 0x50006000 #defi…

序列发生器

一开始想直接FSM&#xff0c;划分出6状态依次输出对应的。但其实只要6比特的移位寄存器&#xff0c;每次输出高位。复位后的默认值时6’b001_011。这样就可以实现循环&#xff0c;这种移位寄存器也叫barrel_shifter。循环移位。也可以使用循环计数器&#xff0c;然后case计数器…

MATLAB知识点:meshgrid函数(★★★★☆)返回二维网格坐标(在MATLAB中经常用于生成绘制三维图的数据)

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自第3章&#xff1a;课后习题讲解中拓展的函数 在讲解第三…

从 AGP 4.1.2 到 7.5.1——XmlParser、GPathResult、QName 过时

新年首发&#xff0c; 去年的问题&#xff0c;今年解决~ 问题 & 排查 1: Task failed with an exception. ----------- * What went wrong: Execution failed for task :app:processCommonReleaseManifest. > org.xml.sax.SAXParseException; lineNumber: 1; columnNu…

Java学习--黑马SpringBoot3课程个人总结-2024-02-15

1.未登录统一处理 2.添加文章分类 //控制添加分类弹窗 const dialogVisible ref(false)//添加分类数据模型 const categoryModel ref({categoryName: ,categoryAlias: }) //添加分类表单校验 const rules {categoryName: [{ required: true, message: 请输入分类名称, tri…

element 表单提交图片(表单上传图片)

文章目录 使用场景页面效果前端代码 使用场景 vue2 element 表单提交图片   1.点击【上传图片】按钮择本地图片&#xff08;只能选择一张图片&#xff09;后。   2.点击图片&#xff0c;支持放大查看。   3.点击【保存】按钮&#xff0c;提交表单。 页面效果 前端代码…

OBD部署OceanBase集群-配置文件方式

前一篇文章介绍了OBD白屏可视化方式部署OceanBase集群 &#xff0c;其原理是把可视化设置生成为一个配置文件&#xff0c;然后使用OBD命令部署集群 本篇想使用命令行加配置文件方式&#xff0c;只部署OceanBase和ODProxy两个组件 服务器参数配置和 oceanbase-all-in-one-*.ta…

洛谷: P1553 数字反转(升级版)

思路: 没想到什么好办法&#xff0c;一步一步来。整体就是反转&#xff0c;删除前导/后导0&#xff0c;反转&#xff0c;删除前导/后导0。 第一次AC没过去&#xff0c;原因是没考虑到分数的分母前导0的情况&#xff0c;比如1234567890/1234567890这个样例&#xff0c;结果输出…

2024 ICDE第一轮 时空(Spatial-Temporal)和时序(Time Series)论文总结

ICDE 2024目前把第一轮接收的论文已经全部放出&#xff0c;部分挂在了arXiv上&#xff0c;本文总结了ICDE 2024第一轮有关时空和时序的相关文章。 &#x1f31f;【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘&#xff01;&#x1f680; 时空数据&#xff08;Spatial-Tem…

MySQL系列之索引入门(下)

前言 通过上文&#xff0c;我想各位盆友已熟悉MySQL的索引分类及其含义&#xff0c;那么如何合理的使用呢&#xff1f; 请继续围观此文&#xff0c;一探究竟&#xff01; 一、创建索引 首先&#xff0c;我们一起学习索引是如何创建的&#xff0c;又有哪些方式。 1. create t…

104.网游逆向分析与插件开发-网络通信封包解析-接收数据的初步逆向分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;网络完成端口模型的流程 下图登录了游戏&#xff0c;此时此刻 WSARecv 已经投递 然后打开x96dbg来到WSARecv函数 然后WSARecv的线程id&#xff1a;5BAC WSASend函数的线程id&#xff1a;主线程 66C0 …

stm32--笔记

一、引脚与变量 ​​​​​​​​​​​​​​ 二、STM32时钟 [STM32-时钟系统详解_stm32时钟_KevinFlyn的博客-CSDN博客] 三、定时器中断实验 1、定时器中断实验 ​ stm32关于通用定时器的周期、频率计算公式_stm32tim频率计算_胶囊咖啡的博客-CSDN博客 ​ 【STM32】通用…

Eclipse - 查看工程或者文件的磁盘路径

Eclipse - 查看工程或者文件的磁盘路径 1. Help -> Eclipse Marketplace -> Find: Explorer -> Eclipse Explorer 4.1.0 -> Install2. right-click -> Open in ExplorerReferences 1. Help -> Eclipse Marketplace -> Find: Explorer -> Eclipse Explo…

svg图片构造QGraphicsSvgItem对象耗时很长的问题解决

目录 1. 问题的提出 2. 问题解决 1. 问题的提出 今天通过一张像素为141 * 214&#xff0c;大小为426KB的svg格式的图片构造QGraphicsSvgItem对象&#xff0c;再通过Qt的Graphics View Framework框架&#xff0c;将QGraphicsSvgItem对象显示到场景视图上&#xff0c;代码如下&…