- 博客(25)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 redis过期key删除和内存淘汰策略
众所周知,Redis是一种内存级kv数据库,所有的操作都是在内存里面进行,定期通过异步操作把数据库数据flush到硬盘上进行保存。因此它是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作。虽然是内存数据库,但是其数据可以持久化,而且支持丰富的数据类型。正因为是内存级操作,那么其受限于物理内存,所以Redis提供了过期key的删除以及内存淘汰策略,从而在一定程度上,能够避免达到内存上限。在本文中,我们首先介绍下如何对某个key设置过期时间,然后再次介绍对于这些过期key都有哪些处理策
2021-09-24 08:53:49
217
原创 批处理创建快捷键
@echo off & setlocalset arg1=%~dp0\Daemon.exeset arg2=c:set arg3=机器人管理系统if not defined arg1 goto usageif “%arg2%”"" set arg2=Desktopif “%arg3%”"" set arg3=shortcutmshta VBScript:Execute(“Set a=CreateObject(”“WScript.Shell”"):Set b=a.CreateShortc
2021-08-25 16:45:03
618
原创 supersocket 和海康SDK 冲突,报错:Failed load commands from the command loader SuperSocket.
本来单独使用supersocket和海康SDK的时候,两者都没有问题。但是将他们放到同一个工程中的时候,运行supersocket开始报错。报错内容是:加载类型“WIFI_AUTH_PARAM”,因为它在 0 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠。这时候无法建立supersocket服务器。经过查找资料解决方案是:将supersocket的库重新封装一个类库。在原来报错的工程中加载此类库就可以解决此问题的。具体原因也不知道为啥。有高手知道可以再次给解答一下的。...
2021-04-23 14:11:29
358
原创 在ubuntu 的QT中不能使用搜狗输入法
使用一下命令重启QtCreator即可cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so gcc_64/plugins/platforminputcontexts/目标路径要根据自身情况修改cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminp
2021-03-26 11:56:44
265
原创 Ubuntu 18.04安装mysql 并完成QT5.14.2mysql驱动编译和使用的全流程
这里写自定义目录标题安装Mysql安装Mysql服务器安装Mysql客户端配置Mysql安装Mysqlubuntu提供了已经编译好的mysql和相应的客户端和连接库。只需要使用命令安装即可。安装Mysql服务器#命令1sudo apt-get update#命令2sudo apt-get install mysql-server安装Mysql客户端sudo apt-get install libmysql++-devsudo apt-get install libmysqlclien
2021-03-26 09:35:57
2013
1
原创 ubuntu 升级cmake
1、卸载cmake,执行命令“sudo apt-get remove cmake”2、从github上下载最新的cmake程序。因为我是X86的芯片。所以下载路径“https://github.com/Kitware/CMake/releases/”3、解压下载的包到任何一个地方。只要自己记住就可以了。4、将解压出的bin里面的cmake和cmake-gui用ln连接到“/usr/bin”里面即可。...
2021-03-11 15:59:29
339
原创 mipsel-openwrt-linux-gcc 4.8.3编译开源日志库 spdlog 踩坑记录
由于公司使用的openwrt的版本和芯片都发生了变化,所以交叉编译链也发生了变化。所以需要重新编译所有工程和使用的库。在编译spdlog的时候,cmake-gui提示没有找到相应的线程库,即没有找到pthread的库。这个使用需要修改Makefile 。在makefile中增加如下:set(CMAKE_THREAD_LIBS_INIT "-lpthread")。这时候重新进行cmake没有发生错误。但是在进行例子的编译的时候提示undefined reference to dlopen' unde
2021-03-11 15:51:45
615
原创 OPEN62541的交叉编译和踩过的坑和使用的例子
在使用open62541在win10下正常运行。最近又需要将其移植到嵌入式板卡里面,嵌入式系统使用的是公司内部改造过的openwrt的系统。在使用cmake-gui配置了程序并进行交叉编译之后,获得了交叉编译完的open62541的库。在使用这个库的过程中,创建opcua的服务器的时候,socket调用函数一直失败,提示“Error opening the server socket”。查看源代码并进行调试,发现每次在调用函数socket的时候,参数“ai->ai_family”一直等于10,查看so
2020-10-13 09:09:24
2623
3
原创 asio listen error: system:97 (Address family not supported by protocol)
在使用websocketpp的时候,运行提示错误“ asio listen error: system:97 (Address family not supported by protocol)”。这个错误是由于我的嵌入式linux系统不支持IPV6的协议。并且boost库的 asio进行网络通信时,默认使用的是IPV6协议族。所以提示这个错误。有两种解决方案,1、将板卡支持IPV6的协议。2、将监听的地方改成如下m_server.listen(websocketpp::lib::asio::ip::
2020-09-28 17:22:00
1053
原创 websocketpp的使用和boost库的交叉编译
最近使用嵌入编程时需要使用websocket。在github上查找开源库时,主要有两个库点赞比较高的,其中一个是websocketpp这个库。此库需要使用boost库进行编译。所以本文章主要介绍boost库的交叉编译和在程序中使用websocketpp。boost库交叉编译从boost官网上下载最新的boost库boost官网等待下载完成之后,放入到虚拟机中(ubuntu),使用命令:tar jxvf boost_1_73_0.tar.bz2 将其解压。cd boost_1_73_0./boots
2020-09-09 16:57:44
2321
原创 交叉编译curl
使用下面的命令可以交叉编译出一个不使用SSL的curl,满足基本的使用。使用的是静态库,动态库的编译虽然编译成功,但是在arm板卡上运行老是报错。最后把报错信息发布出来。有高手可以帮助解决一下。交叉编译命令:1、./configure --host=arm-linux CC=/home/keda/work/K2_LEDE-STABLE-17.01/staging_dir/toolchain-a...
2019-11-22 15:22:16
1692
原创 sqlite3封装类
使用github上的开源封装类sqlite3封装类,将其中老版本的sqlite3的源文件直接换成最新下载的sqlite3的源文件即可使用。而且这个开源库的资料也比较详尽。基本可以满足基础的使用。...
2019-11-20 16:39:25
483
原创 sqlite3交叉编译
1、交叉编译sqllite3可以先从官网下载最新最新的源码进行编译。sqlite3下载sqlite3有两种版本的源代码,sqlite-amalgamation-3300100.zip这种是将所有的操作放到sqlite3中进行使用的。虽然官方推荐使用这种方法。但是对于嵌入式移植还是使用sqlite-autoconf-3300100.tar.gz自动配置编译成so库来使用比较方便。2、首先使用tar...
2019-11-19 17:24:39
2004
原创 OPCUA服务器使用开源软件open62541
最近在使用open62541来是实现OPCUA服务器功能。在官网上下载之后,自带的英文文档可以对软件的使用有很好的帮助。如果英文阅读能力有限,可以参考:[中文文档]来了解其大概使用方式(https://blog.youkuaiyun.com/mikasoi/article/details/84799078)在使用open62541读取节点的值的时候,对于整型和浮点类型,直接将类型为UA_DataValue...
2019-05-11 16:29:16
3966
5
转载 Ubuntu 18.04交叉编译QT5.7.0之Ubuntu18.04虚拟机安装
添加链接描述此连接详细介绍了如何进行虚拟机的安装,按照此步骤进行可完成全部安装
2019-03-13 17:38:44
1108
原创 C++实现谷歌地图上GPS偏移纠正代码
由于国家规定,在使用谷歌地图时,GPS会使用一个保密的算法进行偏移。此偏移算法在互联网上是公开的秘密。可以使用谷歌搜索"wgtochina_lb"。以下代码实现了GCJ-02到WGS-84的转换。可以在谷歌地图上验证过。MapFix.hclass CMapFix{public: static CMapFix* getInstance() { if (m_pInstance == N...
2019-02-27 14:36:43
1053
原创 记录关于QT4.8 信号和槽 connect失败解决的经历
刚开始学习QT,使用的是QT4.8。在继承QWidgetAction时,定义自己的MyAction.但是在自定义的信号和槽的时候connect一直是失败。失败的原因:1、QWidgetAction 继承与QAction,QAction继承QObject。所以在使用QT创建类的时候可以选择QObject。如果自己手动敲代码,在构造函数中的类型也是QObject。2、在使用connect的时候,...
2019-02-21 14:49:14
2849
原创 C++类继承中可能出现的内存泄漏问题(在类继承中会使得派生类中的new出的内存释放失败)
参考此链接问题class A{public:A(){} ;~A() {} ; // Ooops must use virtual ~A()} ;class B : public A{public:B(){} ;~B() {} ;} ;int main(){A pclass_A = new B ; // 创建一个B对象指针 隐性转换为 A// 这里我们需要注意这个...
2019-02-13 15:47:07
795
原创 解决自建非MFC动态库在Relese下奔溃的问题
VC++ 编写动态库和动态库调用程序时,debug下正常,Release下失败的解决方案1、在VS2015中建立一个非MFC的动态库工程,此时工程在release下使用的运行库是MTd。这个是默认的方式。2、在调用测试程序中使用的MD。这时候再release下会发生冲突。所以将动态库的工程改成MD即可解决此问题。...
2019-01-17 09:11:24
103
curl交叉编译成动态库,运行是失败报错
2019-11-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人