C++
文章平均质量分 77
洛克希德马丁
当你凝视深渊的时候深渊也在凝视你!
展开
-
Clion使用vcpkg管理C/C++包
Linux上的库基本都可以通过apt或yum等包管理工具来在线安装包,好用是真的好用,无独有偶,windows上也有类似的包管理工具,那就是今天的主角vcpkg,用好vcpkg可以省很多事。vcpkg可以单独使用,也可以集成到IDE,今天就基于Clion讲解。1、总体我觉得是很好的,配置比apt麻烦点,但至少解决了缺乏包管理器的问题2、像那些诞生于类Unix的包比如ffmpeg在windows上也可以直接使用了,如果自己编译的话麻烦不小。原创 2024-09-21 14:10:02 · 1145 阅读 · 0 评论 -
Jetbrains开发工具使用通义灵码
之前用过tabnine等AI工具,tabnine还行,有免费版,但是效果有限,属于机械式地补全。pro版我没试过。最近发现上线了通义灵码,这个是阿里出的,感觉效果可以,至少超过tabnine免费版了。目前下载量也是一直在增长,重要就是目前免费。1、大家自行体验吧。原创 2024-09-18 22:13:08 · 465 阅读 · 0 评论 -
C++ Poco框架判断请求方式是GET还是POST
作为服务器开发者GET和POST等Method还是要区分的,不同的请求方法要走不同的逻辑。这篇文章很简短但是基于另一篇文章,如果你已经了解Poco了就不用看了。手把手教你使用Poco框架开发服务器应用1、看似简单的一个小函数却是决定成败的关键。原创 2024-08-09 22:34:59 · 321 阅读 · 0 评论 -
C++ Poco服务端框架中JSON的使用
上面一篇文章教你学会了Poco开发服务端应用,这个教程教会你使用JSON。一般传JSON的时候都是POST请求,很少有人把JSON序列化放在GET请求里,不安全。如果你不会开发服务端就先看下下面的文章,通俗易懂。我直接开门见山了,默认环境已经有了。手把手教你使用Poco框架开发服务器应用1、最后的总结才是最核心的部分,特别适合初学者,能少走很多弯路。原创 2024-08-08 21:26:26 · 684 阅读 · 0 评论 -
手把手教你使用Poco框架开发服务器应用
最近接触一个服务器项目,想来想去还是用C++来开发,C++应该来说没有像Spring那么顶顶大名的的框架,但是好的框架还是有的,要不然纯手写服务器要开发到什么时候。今天选的Poco就是相当不错的一个框架,不说多丰富吧,至少开发服务器用到的东西都有了。接下来从0开始教你使用Poco开发服务器应用1、Poco很强大我演示的只是冰山一角,后面我还会演示Poco的其它功能,今天的Demo只能说很简单。原创 2024-08-06 23:01:59 · 628 阅读 · 0 评论 -
解决Poco找不到MySQL::client的问题
最近在研究Poco,一个很强大的C++库,当我要使用MySQL的时候找不到,解决这个问题其实很简单,不需要大费周折。提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原创 2024-08-02 18:03:55 · 354 阅读 · 1 评论 -
使用pulseaudio库简单获取麦克风数据
有时候我们需要在Linux系统上获取麦克风声音数据,也有些情况下我们需要多个应用同时获取麦克风数据或者一个应用同时获取多个麦克风的数据这些都是可以实现的,我们只要使用今天的主角就行了PulseAudio。1、这些是简单应用,还有复杂的以后再说包括混流等等2、可以随意打开任意多个client指向同一个麦克风设备,alsa默认做不到。原创 2024-07-30 18:18:33 · 101 阅读 · 0 评论 -
Windows系统上Clion配置Qt5
对于qtcreator我有很多地方需要吐槽,很多设计我觉得真的可以好好参考下jetbrains,因为我从eclipse时代过来的,这个软件让我感觉比eclipse还难用。对比起来jetbrains的基于JVM的骚操作也不是那么难以接受了。废话不多说,Clion配置Qt5除了form的功能没有(我没配出来),其它我感觉强过qtcreator,接下来有需要的小伙伴可以看下我的操作,假如你真的想这么用的话。1、这种方法配置很简单,Clion会处理大部分工作,比如一些基础库地引用,如果使用其他库直接追加就行了。原创 2024-07-26 17:17:08 · 337 阅读 · 0 评论 -
qtcreator优化代码补全功能
对比Clion感觉它这个代码补全不太好用,至少没有jetbrains全家桶智能。不过我们可以通过调整下参数来优化效果。1、有一定的提升,但是还是有明显的延迟,不知道是不是设计缺陷还是我漏了参数2、臂jetbrains系列有差距。原创 2024-07-25 18:45:39 · 287 阅读 · 0 评论 -
C++对象模型之绕过private权限修饰符
咱们都知道C++语言在创建类的时候data member(数据成员)和fuchtion member(函数成员),在访问权限上有3个分别是privateprotected和public,我们都知道声明为private的成员只能在类内部被使用,但是这是一定的吗?其实这个策略上有一个漏洞,要了解这个漏洞你要理解C++的对象模型,这篇文章只是给你演示怎么理解对象模型,绝不是教你学坏这种方法在实际开发中不可取!1、C++的内存模型是相对复杂的概念,如果你想了解原理又绕不过去。原创 2024-07-22 21:00:47 · 636 阅读 · 0 评论 -
C++一文讲透thread中的detach和join的差别
无论哪种语言线程在绝大多数项目中都是会用到的,C++也一样,C++包装了一个std::thread类可以简化程序员的编程,但在使用过程中也要注意区分用法,否则可能适得其反。今天要讨论的就是单纯的thread的join(等待)和detach(分离)两种情景,让不懂得人看完之后茅塞顿开。不管哪种方式启动的线程都要保证资源的回收,特别是当心主线程早于子线程结束的情况。原创 2024-06-19 18:12:19 · 846 阅读 · 0 评论 -
一文讲透C++的volatile关键字
我们平常使用C++编程的时候可能volatile关键字用的并不多,这个关键字特性在底层硬件编程中用的很多。表示变量可能在程序控制之外被改变,例如被硬件中断或者其他程序所修改。因此,编译器在每次访问该变量时都会重新读取它的值,而不是使用缓存的值。所以它的主要特性就是每次访问都重新读取它的值,而不是使用缓存的值。1、volatile主要用于底层硬件编程,平常编写代码不一定用得上。2、volatile也可能进cache或寄存器,不保证同步,没有原子性,不保证内存顺序。原创 2024-06-18 17:20:15 · 392 阅读 · 0 评论 -
gstreamer+mpp调用硬解码播放视频
以前一直在MPP上开发硬解码推理,最近想弄一个盒子支持调用mpp硬解码播放视频的。我使用的盒子是firefly的rk3399,这个板子的cpu说强也不强,说弱也不算太弱。1、目前实现了视频播放,接下来研究chrome硬解码和播放器硬解码。原创 2024-06-06 21:05:07 · 678 阅读 · 0 评论 -
C++结合ffmpeg获取声音的分贝值
最近面对一个需求,就是需要传递声音文件到模型里推理完成语音转文字,问题是我们使用的是麦克风啊,由于这个特殊属性就需要有一个合理的方法来判断声音的开始,声音的结束和声音的长度。像科大讯飞这样的库已经有这个功能了,如果遇到没有这个功能的怎么办,还得靠自己。方法其实有很多,我们这里使用根据分贝来判断,首先就需要获取到分贝。1、代码完全基于单声道音频,没对多声道进行处理,理论上除了参考值不同对多声道音频也是能处理的。原创 2024-06-04 15:18:24 · 1081 阅读 · 0 评论 -
香橙派 AiPro硬解码能力详细测试
拿到这块开发板的时候号称可以同时硬解码20路1080p@30fps,事实是否真的如此,让我们拭目以待。1、官方诚不欺我,事实如此。2、编码能力标称是20路1080p@30fps,有时间再测测。原创 2024-05-30 15:05:19 · 494 阅读 · 0 评论 -
Windows和Linux系统上paho-mqtt的编译和使用
有时候我们需要使用mqtt,当然最出名的应该就是paho-mqtt了,今天我就手把手教你在Windows和Linux系统上编译和使用paho-mqtt。1、还行。原创 2024-05-21 17:36:48 · 1350 阅读 · 0 评论 -
C++实现字符串分割
我没记错的话java有字符串分割的接口的,C++没有这个接口,或者说没有直接支持这个功能,但是我们可以自己手搓一个。这里有两种方式实现,当然实际不止两种,我介绍两种常用的方法。1、无论哪种方式都需要注意空格造成的影响,正则表达式可以很好解决空格问题2、建议优先使用正则表达式,代码更清晰易懂1、还好。原创 2024-05-17 10:15:41 · 305 阅读 · 0 评论 -
VSCode配置Eclipse快捷键
有时候我们可能会同时使用很多种IDE,每种IDE又有不同的Keymap,快捷键用起来很头疼。比如我,我最早是使用eclipse的,后来就习惯了eclipse的快捷键,哪怕用Android Studio、Clion、Virtual Studio等等我都喜欢切换成eclipse的快捷键,大大加快效率。提示:以下是本篇文章正文内容,下面案例可供参考1、这不是偶然,很多知名的IDE都有这个功能,因为它真的很有用。原创 2024-04-25 17:03:37 · 1247 阅读 · 1 评论 -
C++11 reinterpret_cast讲解
我觉得C++里面有一个很神奇的转换叫reinterpret_cast(类型不相关转换),它和诸如static_cast、dynamic_cast都不一样,这种转换有时候让人摸不到头脑,但是有些场景非常有用。简而言之,类型不相关的转换。但是不是说可以随便转换,它主要用在指针与指针之间,指针和long之间等等。必要条件是两种类型之间必须有相同的位模式,而且转换过后不能直接拿来用,必须转换回来才能使用。1、研究了很久还是决定拿出来掰扯掰扯。原创 2024-04-02 21:19:12 · 2174 阅读 · 0 评论 -
多系统使用ffmpeg读取麦克风数据
最近在搞一个项目需要用到麦克风读取数据并分析,我的开发环境是Ubuntu-22.04,这个操作系统的声音架构是基于alsa+pulseaudio构建的,18.04和20.04一样。这里我会稍微向你展示下alsa和pulseaudio的些许差别,当然这只是这个系统的冰山一角,感兴趣的可以继续研究下去。1、方法不止这些,还需要继续研究。原创 2024-03-26 21:49:35 · 1212 阅读 · 0 评论 -
多系统编译安装libmodbus库
学习modbus协议的都知道libmodbus这个库是modbus协议非常经典的库了,代码量少但功能强大,兼具编译简单的诸多buffer加持,还有什么理由不用呢。这篇文章就是教你怎么配置使用,跟着我少走弯路。1、Windows比Linux稍微复杂点,总体没什么难度。原创 2024-03-26 20:16:40 · 543 阅读 · 0 评论 -
JavaScript Uncaught ReferenceError: WScript is not defined
最近在Visual Studio 2019上编译libmodbus库,出现了很多问题,一一解决特此记录下来。原创 2024-03-26 18:17:49 · 326 阅读 · 0 评论 -
C++代码中goto的作用讲解
goto语句在大多数由程序员直接完成的高级程序设计任务中都没什么用,但是在由别的程序生成的C++代码中非常重要。例如,goto可能会出现在一个由解析生成器生成的解析程序中。1、应该来说跳出循环可能是最有用的功能了2、goto可以通过逻辑控制替代。原创 2024-03-22 22:01:26 · 1279 阅读 · 0 评论 -
记录一个Ubuntu-18.04上ffmpeg遇到的一个奇葩bug
要不是亲眼所见,打死我都不相信。安装的ffmpeg无缘无故突然访问不了了。原创 2024-03-15 16:27:44 · 434 阅读 · 0 评论 -
Clion配置远程服务器并在上面开发
作为开发C++最强大IDE之一,Clion确实相当好用了,可惜没有社区版。不过,你先不要可惜,专业版有一个功能那就是远程连接。我觉得这个功能才是Clion的灵魂,当你还在为配置环境而头疼的时候不妨来试试这个功能。1、基本没有难度,可能有人不知道这个功能。2、Pycharm、IDEA、WebStorm等等都有这个功能,貌似社区版没有,只有高级版有。原创 2024-03-14 20:50:03 · 1431 阅读 · 0 评论 -
Clion配置并使用rsync
Clion这个工具和别的IDE不太一样,虽然都是Jetbrains开发的,但是目前为止它是没有社区版的,就是说要想用必须付钱。别的不说,就我用过的那么多开发C++的IDE,它确实好用。特别是远程功能,可以将本地代码推送到远程机器编译调试。美中不足的就是自带的SFTP不好用,至少不如rsync好用。1、蛮简单的2、功能很强大,用好了如有神助。原创 2024-03-14 11:25:05 · 619 阅读 · 0 评论 -
fastllm移植到Windows加快LLM推理
最近在搞一个关于Chatglm-6B的项目,一个普通的回答要接近5秒钟,经过研究发现fastllm有明显的加速,加速后1.5秒,而且也没发现损失什么精度。1、原作者只给了Linux上的编译方法,Windows的还是费了些波折。原创 2024-01-31 11:21:42 · 1356 阅读 · 0 评论 -
Ubuntu-22.04编译安装FLTK
最近在研究FLTK,突然对它感了兴趣,就想使用Clion跑一些项目。经过一下午不断摸索,终于在Linux上跑起来了Demo,现在分享给需要的各位。1、我拿Windows的代码直接在Ubuntu上编译运行,一句代码都没有改,这种移植性非常好。原创 2023-12-26 17:25:24 · 443 阅读 · 0 评论 -
Windows基于Mingw编译安装FLTK
最近在研究FLTK,突然对它感了兴趣,就想使用Clion跑一些项目,结果基于FLTK源代码编译在Windows11上各种报错。我仔细研究了下ide描述,基本可以确定主要基于VS的配置,MingW官方只是轻描淡写了下,实际编译还是报错。经过一下午不断摸索,终于跑起来了Demo,现在分享给需要的各位。1、没想象中那么难,一开始以为要上VS大法了,结果虚惊一场。2、Linux上会简单很多。原创 2023-12-26 17:05:56 · 841 阅读 · 8 评论 -
C++对象的生命周期详细解读
我们写C++就不可避免需要用到变量,用到变量就要知道生命周期原则,要不然写的代码自带bug,崩盘只是迟早的事。生命期顾名思义就是出生到死亡的这个时间。放到C++的对象上就是从对象被创建开始到对象被回收结束这么一个过程。1、掌握这三种对象的生命期就可以写出没有bug的代码了,前提是深刻理解。原创 2023-12-22 17:39:04 · 1299 阅读 · 0 评论 -
C++内存空间详细解读
我们都知道C++和C语言一样都是基于堆栈结构设计的语言,Java虽然有虚拟机而且自动回收内存,他也是基于堆栈式结构设计的语言。当然,我们今天主要讨论C++的内存空间类型,只不过首先要了解它的语言结构。1、用好三种内存就足够了。原创 2023-12-22 16:52:48 · 192 阅读 · 0 评论 -
C++的作用域详细解读
写C++离不开一个重要的概念那就是作用域,作用域是C++语言非常重要的一个概念,接下来我们就一起看看C++的作用域。学好C++作用域必须理解透彻,这样才能用好!原创 2023-12-22 15:10:02 · 1967 阅读 · 0 评论 -
c++编译使用log4cplus
C++很强大,但是仍然有很多不尽如人意的地方,比如打印日志方面就没有java的log4j那种信手拈来,自然而然地东西。目前官方没有推出这个东西,只能借助第三方开源项目实现,或者干脆自己实现。但是,今天我们说一说一个很强大地日志库log4cplus在c++项目中地使用。log4cplus配置项众多,可以根据需要来配置。请注意,不同的版本分支配置项可能不一样,请注意区分。这个东西在配置文件里可以看到,这里不细说了。--with-qt主要包括调试,so版本号支持,宽字符支持和本地化等。原创 2023-10-24 15:11:23 · 454 阅读 · 0 评论 -
C++11打断线程的几种方式
我们都知道在C++11中可以方便启动一个或多个线程,常规的手段是让线程执行完任务后自己结束自己,或者在达成一定的条件时退出。如果,我想在运行途中停下来怎么办?这篇文章就提供几种可行的方法。取消点:线程并不是所有时刻都可以打断,只有当线程到达取消点的时候才可能被取消,通俗来说就是阻塞。诸如join、wait、sleep、IO操作都是典型的取消点。1、优先使用Boost的方法,没别的原因,就是简单。2、当然线程自身也可以打断自己,只不过我一般选择标志或自动结束更简单些。原创 2023-10-09 16:51:13 · 1173 阅读 · 0 评论 -
Clion配置WSL2环境
我最近在使用Clion,因为我有些时候需要操纵硬件,而且有些软件没有Linux版本,所以没办法就在Windows11上使用Clion,然后配置一个WSL2环境。这种配置,除非你对Linux有硬件上的需求(需要使用Host版的Linux),软件上的场景基本能满足。等到有一天微软彻底解决硬件互通的问题(目前显卡支持访问),WSL2和Windows的深度集成将成为一大神器。总的来说没什么难度。原创 2023-07-24 13:45:49 · 1358 阅读 · 0 评论 -
CUDA和CUDNN安装和版本验证
使用CUDA开发AI项目必然离不开CUDA和CUDNN的安装,今天这篇文章就是教你怎么验证CUDA和CUDNN是否安装成功和验证版本是不是安装对了。1、方法还有很多,两个就够了2、如果环境有问题,大概率测试程序是跑不完的。原创 2023-07-03 17:54:39 · 3538 阅读 · 0 评论 -
windows环境cmake引用boost库
Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。原创 2023-06-20 18:29:17 · 4192 阅读 · 0 评论 -
C++11 模板实参代入失败
使用C++实现“泛型编程”必然离不开模板的使用,模板简化了程序设计,简化了实现,解决了代码臃肿的问题。像STL(Standard Templete Library)里的函数基本都使用了模板。在生成一个候选函数来解析一个函数调用的过程中,如果编译器发现生成一个模板特例化是无意义的,就不会将它加入到重载候选集中。如果一个模板特例化版本会导致类型错误,它就被认为是无意义的。原创 2023-06-14 18:01:40 · 1029 阅读 · 0 评论 -
C++11 上下文关键字
熟悉C++11的朋友都知道,C++有大概83个左右的关键字。1、没什么难度,纯粹需要理解。原创 2023-06-13 15:28:56 · 577 阅读 · 0 评论 -
Ubuntu系统denyhosts的使用
今天服务器又被攻击了,防火墙也打开了,由于服务器需要对外提供服务,避免不了开放几个外部端口,所以增强防护才是王道。翻开/var/log/auth.log的日志发现很多外国的ip再请求我的端口,庆幸的是都被拒绝掉了,这应该是反复实验端口并试图找到漏洞。我准备增加denyhosts的服务,自动将一些外部攻击给加到黑名单里面。1、总体没那么难,不明白的设置就维持默认2、有问题的可以评论,我会看到邮件。原创 2023-06-07 13:37:08 · 939 阅读 · 0 评论