- 博客(20)
- 资源 (2)
- 问答 (2)
- 收藏
- 关注
原创 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++开源线程池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
web前端textarea的value有初始内容时,怎么实现文本域自适应
2019-01-18
HL-340串口转USB驱动时显示未知USB设备(设备描述符请求失败)
2017-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人