C++
文章平均质量分 56
记录C++相关知识
陈 洪 伟
这个作者很懒,什么都没留下…
展开
-
内存错误分析工具----asan(AddressSanitizer)的介绍和使用
内存错误分析工具----asan(AddressSanitizer)的介绍和使用原创 2022-09-15 18:12:37 · 26351 阅读 · 0 评论 -
C++ primer(第五版)简单读书笔记
工作中发现自己对C++掌握的不够扎实,于是打算利用业余时间系统的复习下C++,先看C++primer,看完C++ primer之后会挑一个质量比较好的C++学习视频,此笔记为阅读C++ primer(第五版)时的笔记。第二遍需要复习的东西第一章 开始第一章没有需要复习的知识点。第二章 变量和基本类型2.2变量C++中对一个变量进行初始化有好几种方式,例如下面的几种都是...原创 2019-07-04 09:45:00 · 628 阅读 · 0 评论 -
Linux中的零拷贝(zero-copy):DMA、mmap、sendfile、驱动程序mmap具体实现
Linux中的零拷贝(zero-copy):mmap、sendfile、splice、tee、DMA原创 2024-10-22 16:48:53 · 891 阅读 · 0 评论 -
君正T41平台上用libjpeg库将yuv转成jpg的C++代码备份
君正T41平台上用libjpeg库将yuv转成jpg的C++代码备份原创 2024-10-16 17:17:49 · 243 阅读 · 0 评论 -
CNStream流处理多路并发Pipeline框架相关问题整理:Pipeline整体流程、数据传输、多路并发
CNStream流处理多路并发Pipeline框架相关问题整理:Pipeline整体流程、有向无环图DAG、数据传输、多路并发原创 2024-10-16 14:45:00 · 1012 阅读 · 0 评论 -
程序遇到问题错误bug时的15种解决方法途径总结以及之前的一些具体例子
程序遇到问题错误bug时的若干种解决方法途径总结以及之前的一些具体例子:1 信心--没有解决不了的bug;2 耐心、不要着急、静下心来、用脑思考;3 网络搜索;4 大模型问答;5 看芯片手册、SDK手册、官方demo、开源代码的源码;6 寻求技术支持、技术交流群;7 gdb调试;7.1集成开发环境调试:vscode、clion、visual studio等7.2 gdb命令调试;7.3 硬件仿真器调试、ARM裸板调试;8 打印9 利用一些工具;9.1 内存泄漏分析工具工具:asan、valgrind;9原创 2024-09-21 11:09:46 · 1574 阅读 · 0 评论 -
C++单例模式代码实现与分析
C++单例模式原创 2024-09-20 11:25:23 · 568 阅读 · 0 评论 -
aclStream流处理多路并发Pipeline框架中VEncode Module代码调用流程整理、类的层次关系整理、回调函数赋值和调用流程整理
aclStream pipe 流处理框架中VEncode Module代码调用流程整理、类的层次关系整理、回调函数赋值和调用流程整理原创 2024-07-02 20:26:22 · 455 阅读 · 0 评论 -
C++实现线程安全队列(生产者-消费者模型)
C++实现线程安全队列(生产者-消费者模型)原创 2024-05-28 15:58:33 · 302 阅读 · 0 评论 -
C++多线程参数传递以及不同线程之间数据传递问题
C++多线程参数传递问题转载 2024-05-27 09:50:16 · 573 阅读 · 0 评论 -
C++的线程安全队列模板类封装
C++的线程安全队列模板类封装原创 2024-05-24 09:16:41 · 273 阅读 · 0 评论 -
用调试的方式来阅读复杂的C++工程代码以及调试技巧
用调试的方式来阅读复杂的C++工程代码以及调试技巧原创 2024-05-14 10:25:28 · 460 阅读 · 0 评论 -
CNStream代码中C++反射机制的使用
CNStream代码中C++反射机制的使用原创 2024-05-06 19:22:56 · 919 阅读 · 0 评论 -
利用opencv/暗通道方法检测图像是否有雾-利用opencv/暗通道方法对深度学习目标检测算法结果进行二次识别提高准确率
本来利用yolov5检测浓雾的,但是发现yolov5的检测结果会把一些正常天气检测成雾天,这种时候其实可以通过增加正常类,也就是将正常天气被误检成浓雾的图片当成一个正常类别去训练,但是不想标注图片,也不想重新训练算法了,因此想是不是可以用opencv对yolov5检测到的图像进行二次识别,从而提高准确率,结果发现是可以的。原创 2023-11-22 14:14:31 · 867 阅读 · 0 评论 -
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by
出现上述错误的原因是安装了高版本的GCC之后没有更新软连接,只需要查找安装GCC时生成的最新动态库,然后添加软连接即可。然后我看了下/usr/lib64/libstdc++.so.6是链接到哪里去了,这个问题其实我之前遇到过,之前的博客笔记。然后看了下g++版本是8.5.0。在某项目中遇到下面的错误,原创 2023-10-08 10:58:55 · 2562 阅读 · 0 评论 -
GCC版本升高到11.3后编译之前同样的C++代码出现的若干错误
最开始我是用的低版本的gcc编译的onnxruntime,按照下面博客的方式编译的。后来某项目中用11.3.1版本的aarch64-linux-gnu-g++再次编译时出现了很多错误,记录一下。原创 2023-08-03 10:14:58 · 1698 阅读 · 0 评论 -
CURL发送HTTP请求获得Json数据串保存在本地(linux 下 C++ 编程)
CURL发送HTTP请求获得Json数据串保存在本地(linux 下 C++ 编程)转载 2023-03-16 10:18:39 · 984 阅读 · 0 评论 -
error: undefined symbol: std::__cxx11::basic_string
error: undefined symbol: std::__cxx11::basic_string原创 2022-10-11 14:47:14 · 1085 阅读 · 0 评论 -
std::this_thread::sleep_for 函数使用
std::this_thread::sleep_for 函数使用原创 2022-09-15 17:40:20 · 999 阅读 · 0 评论 -
内存泄漏查找工具----valgrind简介与使用
valgrind简介与使用原创 2022-09-07 16:38:17 · 1134 阅读 · 0 评论 -
根据帧率控制延时时间
根据帧率控制延时时间原创 2022-09-01 13:49:21 · 407 阅读 · 0 评论 -
/include/bmnn_utils.h:114:10: error: ‘unordered_map’ in namespace ‘std’ does not name a template typ
/include/bmnn_utils.h:114:10: error: ‘unordered_map’ in namespace ‘std’ does not name a template typ原创 2022-08-12 16:43:26 · 1754 阅读 · 0 评论 -
Linux下so库的符号可见性: 解决多个库同名符号冲突问题
Linux下so库的符号可见性: 解决多个库同名符号冲突问题转载 2022-07-08 13:36:17 · 1053 阅读 · 0 评论 -
C++利用ifstream读取文件内容和长度
#include <fstream>ifstream cfg_ifs("./cfg/config.json");cfg_ifs.seekg(0, ios::end);int cfg_length = cfg_ifs.tellg();cfg_ifs.seekg(0, ios::beg);vector<char> cfg_buffer(cfg_length);cfg_ifs.read(cfg_buffer.data(), cfg_length);cfg_ifs.cl.原创 2022-05-12 15:42:08 · 3055 阅读 · 0 评论 -
/include/Eigen/src/Core/DenseStorage.h:109: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptio
运行某C++代码时报如下错误/include/Eigen/src/Core/DenseStorage.h:109: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 16>::plain_array() [with T = float; int Size = 64; int MatrixOrArrayOptions = 1]: Assertion `(reinterpret_cast<size_t>(eige原创 2022-05-12 15:38:16 · 1019 阅读 · 2 评论 -
C/C++获取cpu的id和名字
目录1 X86 linux获取cpu ID2 ARM linux获取cpu ID3 获取cpu name1 X86 linux获取cpu ID我们在x86 Linux中可以在命令行中用如下命令来得到cpu IDdmidecode -t 4 | grep ID如果想在代码中实现,用如下代码static inline char* skip_ws(const char *p){ while (isspace(*p)) p++; return (char *)p;}.原创 2022-04-26 11:29:24 · 4506 阅读 · 1 评论 -
fp16半精度浮点数转成float类型------C/C++
在深度学习算法模型推理时,会遇到fp16类型,但是我们的c语言中没有这种类型,直接转成unsigned short又会丧失精度,因此我们首先将FP16转成float类型,再进行计算。方法1:typedef unsigned short ushort;//占用2个字节typedef unsigned int uint; //占用4个字节uint as_uint(const float x) { return *(uint*)&x;}float as_float(con原创 2022-03-15 15:11:20 · 7425 阅读 · 3 评论 -
C/C++中的static关键字——未完待续
static关键字主要分为下面五种情况,下面分别进行说明静态成员变量(面向对象) 静态成员函数(面向对象) 静态全局变量(面向过程) 静态局部变量(面向过程) 静态函数(面向过程)参考文献:C/C++ 中的static关键字 - 知乎...原创 2021-11-21 18:28:35 · 404 阅读 · 0 评论 -
C++反射机制的实现
1.什么是反射首先看一个问题:如何通过类的名称字符串来生成类的对象,比如有一个类Class A,那么如何通过类名称字符串“Class A”来创建类的对象呢?C++本身是不支持通过类名称字符串"Classxx"来生成对象的,也就是说我们可以使用ClassXX* object =new ClassXX;来生成对象,但是不能通过ClassXX* object=new "ClassXX";来生成对象。要想解决这个问题就要用到反射,我们先看下维基百科的定义:反射是指计算机程序在运行时可以访问、检测和修..转载 2021-11-21 10:41:33 · 8564 阅读 · 2 评论 -
C++中的CRTP
目录1.虚函数2.CRTP1.虚函数虚函数是通过利用基类指针或引用指向派生类,访问派生类中同名覆盖成员函数,从而实现多态,但是每次调用时都要查询虚函数表,因此效率低下。class Base{public: virtual void method() { std::cout << "Base"; } virtual ~Base() {}}; class Derived : public Base{public: virtual void原创 2021-11-21 10:07:08 · 848 阅读 · 0 评论 -
C语言可变参数详解
1.什么是可变参数在C语言编程中有时会遇到一些参数可变的函数,例如printf()、scanf(),其函数原型为:int printf(const char* format,…)int scanf(const char *format,…)就拿 printf 来说吧,它除了有一个参数 format 固定以外,后面的参数其个数和类型都是可变的,用三个点“…”作为参数占位符。2.参数列表的构成任何一个可变参数的函数都可以分为两部分:固定参数和可选参数。至少要有一个固定参数,其声明与普通函转载 2021-11-20 21:06:17 · 6574 阅读 · 0 评论 -
error: no matching function for call to note: candidate expects 0 arguments, 12 provided
plugins/PluginFactory.cpp: In lambda function:plugins/PluginFactory.cpp:41:115: error: no matching function for call to ‘nvinfer1::plugin::DetectionOutputParameters::DetectionOutputParameters(<brace-enclosed initializer list>)’ DetectionOutpu...原创 2021-07-28 17:25:30 · 1254 阅读 · 0 评论 -
TensorRT升级错误:error: invalid new-expression of abstract class type ‘nvinfer1::UpsampleLayerPlugin’
将TensorRT由7升级到8的过程中遇到如下错误plugins/upsample.cpp: In member function ‘virtual nvinfer1::IPluginV2Ext* nvinfer1::UpsampleLayerPlugin::clone() const’:plugins/upsample.cpp:176:53: error: invalid new-expression of abstract class type ‘nvinfer1::UpsampleLayerP原创 2021-07-28 11:25:05 · 842 阅读 · 0 评论 -
TensorRT升级错误,plugins/poly_layer.h:19:21: error: looser throw specifier for ‘virtual int nvinfer1::
在将tensorrt由7升级到8的过程中,遇到了如下错误In file included from plugins/poly_layer.cpp:1:0:plugins/poly_layer.h:19:21: error: looser throw specifier for ‘virtual int nvinfer1::PolyLayerPlugin::getNbOutputs() const’ virtual int getNbOutputs() const override;原创 2021-07-28 10:17:31 · 2189 阅读 · 11 评论 -
vector中erase删除元素用法及注意事项
参考文献:原创 2021-07-15 16:14:47 · 22302 阅读 · 3 评论 -
Jetson xavier NX 485串口接口封装/Jetson Xavier NX 串口通讯
参考文献:HISI3519上的RS485 C++ 读写接口/linux中RS485读写接口文件 https://blog.csdn.net/u013171226/article/details/116302349NVIDIA Jetson Xavier NX 串口通讯(发送YOLO检测结果)(记录)https://blog.csdn.net/weixin_42447868/article/details/1...原创 2021-04-30 15:31:48 · 3308 阅读 · 1 评论 -
HISI3519上的RS485 C++ 读写接口/linux中RS485读写接口文件
以下为HISI3519上面的RS485读写接口文件,1.dataType.h#ifndef DATE_TYPE_H#define DATE_TYPE_H#include <stdio.h>typedef unsigned char ubyte;typedef char BYTE;typedef unsigned short ushort;typedef unsigned int uint32;#endif2.rs485Service.h原创 2021-04-30 14:09:54 · 1851 阅读 · 0 评论 -
cJSON使用笔记(转载自鱼竿的传说)
缘 起 ...转载 2019-11-29 11:23:00 · 155 阅读 · 0 评论 -
cJSON文件
//cJSON.h/* Copyright (c) 2009 Dave Gamble Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including.原创 2020-09-15 10:05:29 · 260 阅读 · 0 评论 -
C++ GeneralException类,用于异常处理
一个C++的xeception类,用于处理异常,首先是头文件#ifndef _GENERAL_EXCEPTION2_H_#define _GENERAL_EXCEPTION2_H_#include <stdio.h>#include <stdlib.h>#include <string.h>#include <string>#include <stdarg.h>std::string format_msg(const cha原创 2020-12-04 16:20:35 · 984 阅读 · 0 评论