- 博客(23)
- 资源 (17)
- 收藏
- 关注
原创 【无标题】
3、当一个线程调用storeValue ,在不同核上执行的任何线程都可以读取sharedValue,如果在修改,只执行了一条指令,那么读的就是脏数据。2、更糟糕的是,如果一个线程在执行指令1,而另一个线程也在修改sharedValue使用一个不同的值,这将会导致写撕裂。都可以看作是原子的,但是为了跨平台,我们还是优选原子操作,当然如果确定了平台整型是原子,那么可以利用这个特性,对程序性能。注意:为什么这么说,之前也见过,只有一个线程写,其它只是读,不用加锁,肯定是错误的!
2023-09-29 19:07:17 76
原创 Linux环境配置常见问题
gcc 版本高了之后,开始编译glibc (缺少的依赖,可以通过yum install 下载)编译gcc源码需要提前下载好gcc的依赖,如图示例为gcc 7.5.0的依赖,1、Linux下使用Qt可能出现。2、安装openssl依赖。3、cmake编译工具切换。
2023-09-05 16:30:47 92
原创 std::function 与 std::bind
本Demo程序演示了如何定义一个可调用对象,以及如何使用函数包装器std::funtion和绑定器std::bind。
2023-07-30 14:49:58 65 1
原创 CMake命令指南
将目标target与指定动态库进行链接,确保target运行时,可以使用动态库中的函数和符号,语法格式target_link_libraries(target item)注意:如果目录不存在,会自动创建,无需手动,生成的可执行文件是在执行make命令后,如果此处使用相对路径,那么对于./ 指的是makefile文件所在的目录。静态库则不行,可以使用通用的set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
2023-07-25 16:35:37 792
原创 VSCode下配置CMake
首先安装VSCode,需要明白的是:VSCode类似一个文本编辑器,它并不可以直接进行程序开发,但是可以借助强大的插件机制来实现程序开发。打开VSCode后,可以在状态栏处点击:No Kit Selected 来选择合适的编译器,然后可以正常使用Build。C/C++:提供C++的代码补全的IntelliSense,调试,代码预览等,配合编译器来构建c++代码。C/C++ Extension Pack:C++开发扩展包,支持更多的一些功能。CMake:CMake语言支持包(并不会下载CMake)
2023-07-18 10:47:51 2022 1
原创 c++字符串
(此处需要const的原因,"hello"的类型实际是 const char[6],如何不适用const ,就意味 可以通过message[i] 进行修改)用来存放字符的数组,如:char strArr[] = {‘h’, ‘e’, ‘l’, ‘l’ , ‘o’};可以使用char* 直接初始化string,string 没有\0的概念,通过size获取字符串数目。无法使用sizeof来计算字符串长度,因为使用sizeof计算的结果是指针的值,需要是使用strlen来计算,它返回的值不包含 \0的大小。
2023-06-07 14:30:50 38
原创 网络编程-TCP粘包
有一个客户端和一个服务端,它们通过TCP套接字进行连接,客户端将数据发送给服务端,服务端来接收数据并进行解析。首先TCP和UDP一样属于传输层的协议,特点是面向连接、传输安全、基于流式传输协议。由于传输是基于流,所以发送方和接收方每次处理的数据量可以不一样,处理的频率也可以不一样,这不会影响数据的传输。上述现象就是TCP粘包问题,它并不是TCP的问题,而是我们程序员的问题,需要我们在使用的方式上进行一些约束定义,保证数据能够正确解析。上述操作需要保证能接收到一个完整的数据包。
2023-06-01 11:13:55 85
原创 Docker 使用-部署
(可以使用docker-ce 官方仓库进行替换上述地址: https://download.docker.com/linux/centos/docker-ce.repo)错误:软件包:containerd.io-1.4.4-3.1.el7.x86_64 (docker-ce-stable)错误:软件包:3:docker-ce-20.10.5-3.el7.x86_64 (docker-ce-stable)容器是一个运行实例,它是由镜像创建的,容器是一个独立的运行环境(虚拟机系统)容器是进程,镜像是文件。
2023-04-23 17:59:28 87
原创 vs 下编译64位poco
There is a hidden readme filepoco/README at master · pocoproject/poco · GitHub. I'm quoting:Through the Poco/Crypto/Crypto.h and Poco/Net/NetSSL.h header files, Visual C++ will automatically link the libcrypto.lib and libssl.lib libraries. If your Open.
2022-03-16 16:08:47 983
原创 BigSurWidget
自定义的一个包含圆角,透明 以及 阴影的 Widget,可以方便地做成MacOS BigSur那种控件样式。#ifndef BIGSURSTYLEWIDGET_H#define BIGSURSTYLEWIDGET_H#include <QWidget>#define BG_COLOR QColor(31, 181, 231)#define SHADOW_COLOR QColor("#444444")class QPainter;class BigSurStyleWidge.
2020-09-22 13:45:50 159
原创 Qt中实现图片转Base64编码
void MainWindow::convert_image_to_base64(){ QString filename = ui->lineEdit->text(); QImage image(filename); QByteArray bytes; QBuffer buffer(&bytes); image.save(&buffer, "png"); QString base64str = QString("data:ima.
2020-09-16 17:10:12 1468
原创 CMAKE使用
使用cmake 编译代码 步骤:1> mkdir build2> cd build3> build> cmake ..4> build> cmake --build .参考网址:https://blog.csdn.net/fengzhongluoleidehua/article/details/79809756#commentshttp...
2020-01-16 14:22:00 160
原创 双击文件启动程序
双击文件启动程序这个很好做,只需要修改文件属性,选择默认打开程序,即可。该问题可以继续拓展使用情况:1,无论打开多少个文件,都需要在一个程序中运行2,如果程序处于最小化状态,双击文件后,要前置显示,并加载图像解决问题,需要用到的技术:1,QtSingleApplication 库2,进程之间的通信3,命令行参数解析,值得注意的是,当双击文件的时候,文件路径会当做参...
2019-12-25 17:19:37 888
原创 ActiveMQ-Cpp vs2015编译
编译所需资源:https://download.csdn.net/download/ct6816678/11990145APR库需要用到三个:apr、apr-iconv、apr-util,下载解压后把文件夹的版本号去掉。Activemq-cpp-library编译首先需要编译的是activemq-cpp这个项目,编译前工作:把头文件目录以及附加库目录设置好,在属性-》C/C+...
2019-11-22 15:58:28 419 1
原创 基于Facenet的人脸识别服务
一、 环境搭建1,安装Python3.62,使用pip install 进行安装依赖,由于pip install 如果直接安装,默认使用国外的源,速度以及稳定性会令人崩溃,推荐使用国内源进行下载,提高效率。清华: https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中...
2019-11-21 14:49:31 371
原创 Qt 自定义导航窗口
Qt 实现的导航窗口,样式还不错,以后可以在项目中集成为了方便,直接贴代码了:/** The MIT License (MIT) Copyright (c) 2014 thelostcode Permission is hereby granted, free of charge, to any person obtaining a copy of this ...
2019-11-19 14:07:15 728
原创 CMake 编译protocl buffer
在使用CMake 编译protocBuffer的时候,遇到一个错误:大概报错信息就是 cl-exe-is-not-able-to-compile-a-simple-test-program解决方案:找到vcvar32 然后执行以下,在编译就OK了。>vcvars32 (to set some system vars, C:\Program Files (x86)\Micr...
2019-09-24 09:53:25 167
原创 FFmpeg源码example分析01:decode_video.c
#include <libavcodec/avcodec.h>#define INBUF_SIZE 4096/* example for save a simple pgm image file. */static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize, char *filenam...
2019-07-22 23:17:00 744
原创 FFmpeg打开文件流程
FFmpeg 打开一个文件的基本流程如下:具体代码: input_fmt_ctx_ = nullptr; int ret = avformat_open_input(&input_fmt_ctx_, input_file_.toStdString().c_str(),nullptr, nullptr); if(ret < ...
2019-07-22 21:02:32 788
原创 Qt 实现的时间轴 Timeline 用于视频非线形编辑工具
基于Qt 图形/视图实现的时间轴编辑器,支持缩放,时间/帧 现实方式,clip的放大缩小。配合视频播放窗口效果应该不错,放几张预览图给感兴趣的人参考下,另外,提供源码下载,不收费。1)使用鼠标进行缩放视图2)切换显示方式3)支持在时间轴上标记mark4)拖拽修改Clip的长度大小5) 支持Track的添加和删除注意:请使用MinGW编译器编译,...
2019-07-15 22:54:34 5313 13
CTK-master_20191231.zip
2019-12-31
ActiveMQ_QtExample.rar
2019-11-22
WidgetTimeline.zip
2019-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人