- 博客(20)
- 收藏
- 关注
原创 windows下使用mingw和cmake_gui进行编译poppler动态链接库
f:/SAStudio_Win32_x86/env/g++/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o:crtdll.c:(.text+0x16): undefined reference to `_encode_pointer'f:/SAStudio_Win32_x86/env/g++/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../...
2020-05-27 15:21:01 1148
原创 交叉编译poppler过程中遇到的坑(编译过程中混合cmake和make安装各种库)
本文只针对poppler-cpp部分。编译poppler需要的库:libjpeg.so, libpng.so, libtiff.so, liblcms2.so, libopenjpeg.so,libfreetype.so, libfontconfig.so,libiconv.so基本就以上这些。编译遇到以下问题:/....../bin/ld: warning: libpng16.so.16, needed by /work/gcc-linaro-5.3.1-2016.05-i686_arm-l
2020-05-08 17:39:26 1158
原创 关于C++编程过程中遇到的深拷贝和引用计数
在面向对象的编程过程中,深拷贝问题:1. 构造函数中有动态分配内存。2.在赋值函数中,通过直接赋值时会造成被赋值对象并没有分配内存,只是将被赋值对象内部的指针指向赋值对象动态分配好的地址,一旦赋值对象被销毁,被赋值对象内部的指针指向内容已被销毁,会造成无效引用,造成浅拷贝问题。解决办法:通过引用计数解决问题,在赋值函数和赋值拷贝构造函数中将计数+1,析构是对计数进行判断再销毁。...
2020-04-03 15:14:29 146
原创 常量表达式constexpr 关键字的使用(constexpr constructor does not have empty body)
constexpr说明符可以在编译时求得函数或者变量的值。然后这些变量和函数(若给定了合适的实参)即可用于仅允许编译时常量表达式之处。 用于对象或者非静态成员函数声明的 constexpr 说明符蕴含 const 。用于函数声明的 constexpr 说明符或 static 成员变量蕴含 inline.constexpr 变量: 类型必须是字面类型。 必须被立即初始化。 ...
2020-03-26 10:31:53 1244
原创 Modbus CRC校验算法
uint16_t crc_reflect(uint16_t data, int32_t len){ uint16_t ret = data & 0x01; for (int32_t i = 1; i < len; i++) { data >>= 1; ret = (ret << 1) | (data &am...
2020-03-24 10:06:42 628
原创 使用关键字 struct 写出 C++ 类型的class
struct MulTable{ MulTable():values(){ for(int i = 0; i < 256; i++){ values[i] = (i&0.80) ? ((i<<1) ^ 0x1b) : (s << 1); } } ~MulTable(){} ...
2020-03-24 10:02:16 108
原创 C语言中Round四舍五入的实现以及解析
由于最近要上新系统,所以要公司重新写一套自己的gui框架,组长分配了一些任务给我,就是实现一些基本功能,当然源码还得看Qt的框架和源码重写系统。由于Round的四舍五入的函数再0.5处具有不确定性,我们可以参照一下Qt源码的qRound的实现:constexpr inline int qRound(double d){ return d >= 0.0 ? int(d + 0.5) ...
2018-11-08 10:49:57 4219
原创 Qt-QML-Charts-ChartView-编译错误-ASSERT: "!"No style available without QApplication!
今天使用QML的ChartView进行绘制图表的时候出现了以上错误,Qt Forum上的这个问题两年前都有人遇到了,现在都没有人给出答案,不知那个老外最后怎么解决了,今天把例子敲打出来后决定写个东西,以免以后再次遇到还得查找很久。 其实QML的官方示例上有个关于ChartView的Demo,在PC机上可以完美运行,接下来就是找不同了。 原因有二:一、...
2018-08-30 13:31:36 1328
原创 关于回调函数的例子
最近和同事讨论C++和C的区别的事情,说到C++里面有很多的回调函数,就自己实现了一个简单的回调函数的Demo,免得自己忘记回调函数的用法#include //此为注册回调函数typedef int (*callback)( unsigned char para );//此为回调函数的执行int functionCallBack( callback func,
2018-01-03 21:43:03 226
原创 程序员的自我修养第二章总结
知识点一:程序成为可执行文件的过程(hello.cpp ---> a.out) 分为四个步骤:1,预处理 2,编译 3, 汇编 4,链接 1.预处理 预编译之后的文件名为xxx.i (gcc -E hello.c -o
2017-12-19 15:42:31 243
原创 程序员的自我修养第一章总结
知识点一:假如硬盘有两个盘片,每个盘片有65536个磁道,每个磁道有1024个扇区,而每个扇区的字节数是512个字节, 所以该硬盘的物理硬盘内存为 2*2*65536*1024*512 = 128 G知识点二:高速设备连接到北桥,低速设备连接到南桥,南桥通过总线连接到北桥,北桥连接到CPU上,由于CPU处理速度极快,所以CPU采用倍频的方式与
2017-12-19 15:16:25 315
原创 关于extern以及源文件和头文件的应用
最近在纠结这个问题,全局变量的声明到底应该在源文件还是头文件中,其实有两种方法:缘由:因为 int a;表示的是一个定义,而extern int a;却是一个声明方法一:在a.h中表示全局变量的声明:extern int a; 在a.c中进行全局变量的定义:1)exetrn int a = 5; 会跳出警告( a.c:3:12: warning: 'a
2017-12-17 14:00:25 982
原创 QT5 cannot find usr/local/lib, file format not recognized
首先查看有没有在工程文件中添加链接库的目录INCLUDEPATH += /usr/local/include //此为头文件的目录LIBS += -L/usr/local/lib -lmodbus //此为链接的lib库的目录如果添加了还是出现以上问题,首先查看/usr/local/lib路径下有没有要链接的lib库,没有的话就是路径不对,更换路径即可。如果存在lib库,
2016-11-25 14:09:28 4949 1
原创 ubuntu下Qt配置qwt和libmodbus
Qt安装在ubuntu上出了很多问题,其中一个就是qmake不能用。解决方法:进入/usr/lib/x86_64-linux-gnu/qt-default/qtchooser目录,对目录下的default.conf修改为/home/mlw/Qt5.7.0/5.7/gcc_64/bin/home/mlw/Qt5.7.0/ 这是我的Qt的安装目录,
2016-11-22 14:16:32 1663
原创 16.04ubuntu安装后出现的N个问题
安装ubuntu出现图形界面倒是没有什么问题,直到看见vim编辑器不能用,才知道ubuntu自带的是精简版的vim,需要移除和重新安装:sudoapt-getremove vim-commonsudo apt-get installvim但是安装的时候发现apt-get不能用,fuck,重新安装:sudo apt-get updatesudoapt-g
2016-11-22 13:25:23 596
转载 Ubuntu下安装libmodbus3.1.0运用在Qt上
Ubuntu环境下安装modbus库函数,下载libmodbus库文件,./configure --host=arm-linux --prefix= (/*自己创建的安装目录*/)makemake install编写Qt程序时,记得include绝对路径的头文件的就OK了,还要记得添加在工程中 LIBS += -L (/*自己创建的安装目录*/) -lmodbus
2016-11-18 09:45:41 1812 1
原创 ubuntu下Qt安装qwt出现的问题
我的Ubuntu的版本是14.04,因为Ubuntu的位数是32位的,下载Qt版本是在软件中心下载的基于Qt5.3.2版本的Qt Creater 3.2.1,下载的qwt的版本是qwt-6.1.3-tar.bz2,但是编译安装的时候出现了很大的问题:qmake: Project ERROR: Unknown module(s) in QT: svg经查是由于Qt版本不一致造成的,我百度了很
2016-11-10 14:30:11 1301 1
原创 关于android底层的认识
Android底层的认识:关于android底层刚开始确实有给很多迷茫,这方面的android的数据存储机制和java以及一些C语言的使用紧密的结合会让初学者倍感不适,下面是学习android从应用层到底层的一些自己的看法。android从上到下分为四个层次:application,applation framework,JNI,Hardware Abstract Layer。applic
2016-07-08 22:33:06 630
原创 关于java数据类型的自己的见解
java的数据类型:1)基本数据类型:bbcs(boolean,byte,char,short),int,long,float,double 2)引用数据类型:数组,类,接口。基本数据类型传递采取的是值传递的方式,值传递时参数的改变并不会造成值的改变。引用数据类型传递采取的是地址传递的方式,传递时改变的是改地址所对应的值,所以会造成值的改变。每种数据类型所占的字节数:b
2016-07-07 23:11:30 260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人