自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 Qt pro文件定义宏的方式

DEFINES += ASAN类似于c语言中的:#defineASAN

2022-10-14 17:45:32 591

原创 Qt pro文件通过外部传参实现条件编译

由于在CONFIG参数里面添加了arm64参数,所以会打印出“build platform is arm64”先总结下常用的qmake条件编译的各种方式,然后再给出外部传参控制逻辑的方式。这样运行结果就是打印出“build platform is mips64”了。注意,上面所有的代码,条件和大括号“{”最好都在同一行。其他的条件编译方式同样可以按照外部这种方式改变运行逻辑。contains和{必须在同一行,否则报错。

2022-10-14 17:23:26 191

原创 CMake获取目录下所有源文件

aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} ALL_SOURCE) , 这样将当前目录所有的源文件(.cpp 和.c文件)都放到了ALL_SOURCE变量中,但是头文件并没有被包括进去,若在头文件有函数的实现部分,采用这种方式就容易出问题,所有我很少使用这种方式。这样就将当前目录所有的源文件都放在了ALL_SOURCE变量中,所有的头文件放在了ALL_HEAD中。1、aux_source_directory指令。2、file指令,我通常使用这种方式。

2022-09-13 12:08:52 1964

原创 开源C++ http服务框架WHttpServer

c++ http服务框架

2022-04-17 16:37:28 3340

原创 C++开源线程池WThreadPool

gitee地址:WThreadPool: 基于C++语言编写的线程池介绍基于C++语言编写的线程池,采用了无锁队列,性能更强,有管理线程,在任务繁忙时会增加线程,在任务少时会减少线程以节省资源.该工程是跨平台的软件架构软件架构说明安装教程直接使用源码中LockQueue.hpp、WThreadPool.h、WThreadPool.cpp文件集成到自己的工程即可使用说明1、void setMaxThreadNum(int maxNum),设置最大线程数2、bool wait

2022-01-28 16:46:31 864

原创 CMake定义宏的方式

1、采用add_definitions定义宏,但是这种定义方式无法给宏具体值,比如: add_definitions(-DMG_ENABLE_OPENSSL)对应于C语言中的 #define MG_ENABLE_OPENSSL2、add_compile_definitions定义宏,这种方式可以给宏具体值,但是这个指令只要高版本的cmake支持,比如: add_compile_definitions(MG_ENABLE_OPENSSL=1)对应于C语言...

2021-09-16 14:45:55 11545 3

原创 低版本openssl编译动态库的记录

1、./config shared --prefix=/usr/local/openssl查看生成的makefile文件,看里面的CFLAG 中是否有选项-fPIC,若没有,则自己增加-fPIC2、make -j43、sudo make install低版本的openssl默认是不生成so文件的,所以需要加shared我选择的1.0版本的openssl编译,之前在./config上件-fPIC没有用,依然会报recompile with -fPIC的错误,后来将文件夹删除后,重新解压

2021-09-07 14:25:53 195

原创 openssl生成私有证书

1、opensslreq-x509 -days 3650 -newkey rsa:1024 -nodes -keyout server.key -out server.cert2、openssl x509 -in server.cert -out server.pem -outform PEM第1步会生成server.key和server.cert(后缀名若是.crt也是可以的)两个文件,有些程序只需要这2个文件就足够了,但是有些程序使用的是pem文件,而不是cert文件,比如nodejs,所...

2021-09-01 16:27:38 149

原创 cmake复制目录下的所有文件

file(GLOB allCopyFiles "${NSF_HOME}/lib/*")file(COPY ${allCopyFiles} DESTINATION ${LIB})

2021-08-16 14:18:19 3187

原创 程序中I/O操作优化的方向

1、单线程操作I/O。可以单独开辟一个线程专门用于操作I/O,大部分情况下,采用多线程可以提升效率,但I/O操作除外,反而可能会降低效率,为什么呢?大家想想,磁盘对数据的读写是需要磁头的转动的,假设线程1正在读取文件1,...

2021-07-29 20:11:28 74

原创 git怎么将2次commit合成1次

git rebase -i HEAD~2,这一步会进入一个编辑页,如下图所示,可以将不要的提交log变成前面变成f,具体的意思图中下面有解释,下图那种情况就只有第一条log会保留 git push origin -f 239-fix-roster-json:239-fix-roster-json,合并成功...

2021-04-08 14:29:54 167

原创 vue2.x路由传参方法总结

1、采用<router-link> 标签中的to传参传递的页面<router-link :to="{'name':'addClue', params: {'type': 1}}"></router-link>router.js中path: 'addClue/:type',name: 'addClue',component: addClue其中path是否可以不加上:type有待商量获取参数的页面:This.$...

2021-03-10 11:53:44 863

原创 CMake通过外部传参执行不同逻辑的2种方案

有时候一些场景需要在执行cmake指令时传入一些参数的值,使得CMakeLists.txt文件中的程序执行不同的逻辑,下面给出2种方案。1、SET指令给参数默认值 默认情况下会执行else,打印“this is x86 platform”,但可以更改,比如运行cmake指令时如下: cmake . -DBUILD_PLATFORM=arm 那么打印出来的是“this is arm platform”。2、OPTION指令开关 默认情况下会...

2021-02-19 16:41:05 2785 1

原创 libreoffice的启动、测试和问题记录

前提:libreoffice已经安装好,libreoffice指令可用。以我的服务器为例,由于libreoffice指令软链接到/usr/lib/libreoffice/program/soffice,所以下面凡是用libreoffice指令的地方,你用/usr/lib/libreoffice/program/soffice代替自然是一样的效果。1、libreoffice服务的启动启动指令是libreoffice --headless --accept="socket,host=0.0.0.

2021-01-18 15:28:05 3259

原创 uos/deepin下利用deb包配置本地apt源

uos操作系统下,平时用apt指令安装的包,其对应的deb包文件会存储在/var/cache/apt/archive中,采用apt指令也可以只下载包,不安装,利用这些deb文件,我们可以制作自己的apt源,供那些无法连接外网的机器使用。下面以libreoffice包为例,制作对应的apt源:1、下载libreoffice相关的所有deb包,最后找一台完全没有安装过libreoffice的机器下载,这样就会将所有依赖一起下载下来,否则apt检测到本地已经安装了对应依赖,是不会下载的。指令如下:.

2021-01-15 10:14:12 3130 1

原创 deepin20或uos系统配置Qt4的环境

一般linux下配置Qt4.8.7的环境是下载下源码,然后configure、make、make install安装,但是deepin20或uos(下面只说deepin20,两个系统情况是一样的)使用的gcc版本是8.3,这种高版本的gcc情况下,按上面的办法直接编译Qt4.8.7的源码是编译不通的。通过联系了uos的工程师,得到了另一种安装办法。1、修改/etc/apt/sources.list源文件deepin20原/etc/apt/sources.list的原内容如下图1所示,只有一行d.

2020-11-06 14:57:21 451 1

原创 Qt信号与槽的实现原理

本文档中出现的代码不一定是Qt的原生代码,可能是根据原来思维写的类似伪代码,如会将Qt原生的slots、signals关键字换成db_signals和db_slots,以表示这是伪代码,而不是Qt原生的代码,只用于表述信号槽的原理。首先对象内部会议2个char*型的字符串,专门记录类中定义的信号与槽,如:class Object{public:Object();virtual ~Object();db_signals: void sig1();...

2020-06-04 10:51:34 2022

原创 关于Qt乱码的解释和解决方案

关于Qt的乱码问题,以下是个人见解,可能有错误之处,欢迎指出。要弄清楚Qt中的乱码问题,首先需要清除2个概念:源码字符集(the source character set):源码文件是使用何种编码保存的 执行字符集(the execution character set):可执行程序内保存的是何种编码(程序执行时内存中字符串编码)Qt为了保证跨平台,源码字符集统一采用的是带 BOM 的...

2020-03-26 17:36:21 685

原创 QCustomPlot类编写动态折线图,可坐标平移

QCustomPlot类编写动态折线图,可坐标平移看本博文前,请先弄清楚QCustomPlot的配置及使用方法,具体请参考网页:http://www.myexception.cn/program/1912498.html,本篇博文使用的是第一种方法,也就是提升法。QCustomPlot类的源码库下载地址为:http://download.csdn.net/detail/a2886015

2016-11-30 09:42:25 4905 2

原创 Qt中QWT快速配置

本教程配置环境为Qt4.8.5+Qt Creater2.8.0+minGW4.4.0+win10 32位系统,使用本教程之前需要将Qt Creater运行的环境都已经配置完全,可以参照网页http://www.wfuyu.com/Internet/17377.html本教程需要的资源是“qwt-6.1.0已编译.zip“。下载页面为http://download.csdn.net/de

2016-08-24 15:51:44 994

QCustomPlot类

QCustomPlot源码库

2016-11-30

qwt-6.1.0已编译.zip

只留下了安装qwt-6.1.0的必要文件,没有qwt例程了。

2016-08-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除