- 博客(50)
- 资源 (9)
- 收藏
- 关注
原创 linux内核编译与升级
一,Linux内核源码下载在Linux官网下载对应的内核代码建议下载文档版本源码,解压到当前目录。二、编译内核#1.解压xd -d linux_xxx.tar.xdtar -xvf linux_xxx.tar#2.拷贝配置文件到当前目录cp /boot/config-xxx ./.config#3.编译图型菜单make menuconfigsa...
2020-01-17 14:50:23
339
原创 Linux gdb 调试core dump
gdb使用两个推荐链接:GDB中文手册GDB常用命令0.关于core文件的设置两种方式设置core文件名,默认系统是生成名为core的文件,但是当我们为了方便调试,需要生成带pid,time等信息的core文件时候,就需要自己设置一下了。以下命令一般都要root权限。echo "1" > /proc/sys/kernel/core_uses_pid如果以上命令执行无权限,...
2019-10-18 11:27:47
273
原创 Qt5压缩解压缩文件/夹
全网居然没找到一个能直接压缩整个文件夹的c/c++库,就算找到了zlib,karchive,archive等开源库,基本也是在Linux下支持的较好,在win下只有zlib还算是编译过了。而且不能全文件夹压缩的,都是buffer或者单文件压缩,这就好奇了,标准zip怎么搞?原来zip是有一个特定archive的,链接在此。由此思路,如果自己要压缩文件夹,那就自己遍历,然后自己定义压缩文件的格式...
2019-08-02 15:21:15
2732
2
原创 使用windeployqt打包
使用QT5自带的windeployqt打包程序1.从开始菜单找到qt程序目录如下图,我安装了vs版和mingw版本,根据需要选择即可。2.执行两条关键命令cd 到exe所在的目录执行windeployqt *.exe会在当前目录生成exe依赖的所有文件(含库,语言包,插件等信息,部分非必须文件也会被拷贝过来)。此时程序即可打包了。...
2019-06-11 13:36:48
496
原创 Qt5 Linux远程调试
当我们程序发布到新机时,难免会遇到意料之外的情况,在目标机安装编译环境虽不失为一种方式,但安装环境耗时耗力,远程调试一定会让你觉得神清气爽.1.目标机需要有gdb gdbserver.没有就安装,Ubuntu是自带有,gdbserver --version可以查看版本信息2.目标机执行debug版本gdbserver 127.0.0.1:1234 myAppip:port说...
2019-02-27 12:58:52
641
原创 虚拟机Ubuntu局域网联网问题
对于虚拟机的网络有多种模式:1.桥接模式,该模式直接使虚拟机连接物理网卡,与主机保持同一局域网。但与主机ip地址不同。该模式下,局域网内的其它主机可以与该虚拟机相互ping通。可以使用外网。2.nat模式,默认模式,该模式是与主机共用一个ip,但虚拟了一个新的子网,故局域网内的其它主机不能ping该虚拟机,但该虚拟机可以ping通其它的主机,可以使用外网。...
2019-01-25 18:36:15
492
原创 再谈qt5程序发布时依赖库问题追踪
程序打包后,发布到新的Ubuntu18,又出现了依赖库的问题。使用ldd显示的所有依赖库都已经存在了,一切正常,然而一运行就发现qxcb no found,这。。。。难道plugins路径不对?之前在其他环境都布了完全能运行啊,怎么可能plugins会不起效呢?设置一下环境变量/拷贝qxcb库到应用程序路径,还是不起效,所以路径不对也基本可以排除了。这时,使用qt自带的一个调试插件的宏就起...
2018-12-24 17:52:50
892
原创 centOS7安装python3.7+版本问题
1.python2不要卸载,因为yum依赖python2,谁叫Google不向下兼容2.保留2,安装python3.7依赖的第三方库, wget 下载地址 ./configure prefix=/usr/local/python3 (请使用此命令代替上述命令./configure --with-ssl如果不带ssl安装会导致后面pip链接网络失败,也就安装不了python的其...
2018-12-08 15:37:21
1956
原创 QT将事件执行moveToThread槽函数不响应问题
如图,最近遇到这么个问题,想将写日志信息放到一个单独的线程中去执行,然而添加movetothread后程序就不进入槽函数了,第一想到的就是检查语法规范,然而,注释图中第三行代码发现,可以执行,显然,语法是没任何问题的了。这就有点奇怪了,于是单步调试发现如下图这个提示就很明显了,原来是参数未注册元对象的问题。那好注册一下试试呗,成功了,打印下线程信息安心呗,果然意料之中。总结...
2018-11-27 17:59:50
2309
1
原创 linux的ssh免密登录
ssh免密登录在很多运维环境都需要用到FTP,SCP,SSH远程登录等。。。暂且假想客户端为B,服务器为S。我们需要从B远程登录S的时候,总是需要登录S端的用户密码,很麻烦。那么如何利用ssh免密登录?以rsa加密为例,本质是利用rsa加密算法对登录密码做了加密处理,来使得服务器自动接受客户机的认证。1.公钥 2.私钥,本文不做赘述。直接上代码,首先确保B-S联通,且S启动了ssh服务...
2018-11-21 19:08:07
135
原创 老毛桃制作LinuxU盘启动盘
如果usb-hdd+的写入方式,系统制作完后,启动失败,所以需要在“便捷启动”中手动写入引导扇区即可,选择syslinux。如果写引导总是提示u盘被占用,实际并未被占用,改用RAW方式重做即可...
2018-11-19 10:13:59
7935
1
原创 linux修改因软件版本升级不能使用的命令
linux部分版本会内置一些常用软件命令,如python /qt等。Ubuntu自带python2,qt4,如果我们安装了python3 ,qt5发现python命令调的还是python2,而qt命令还是调用的qt4,这时候我们需要找到该命令链接点,从新链接即可而当前用户的命令通常所在目录是/usr/bin#进入用户命令所在目录cd /usr/bin#查看python命令l...
2018-11-14 10:48:05
187
原创 Gnome隐藏上边栏,Ubuntu18 hide top bar
Ubuntu18LTS,UI已经回归gnome了。Unity被弃!那么本文就将已Ubuntu18为例讲解怎么隐藏顶部状态栏及任务栏。任务栏其实没啥讲的Ubuntu18/16都是在系统设置里面就支持自动隐藏了,还有停靠位置(左,右,下)。但是自动隐藏18与16不同的是,18只有软件界面与dock界面有交汇碰撞,dock才隐藏,否则,dock是一直显示的,可以参考本文最后效果图。而16的隐藏是...
2018-10-30 15:44:13
7720
原创 vm14卡顿及安装linux黑屏问题
因工作需要按照了vm运行Linux,当然按照64位系统了,vm14+Ubuntu18/16LTS都有,安装很简单默认点击下一步就完了,也很顺利。但是发现奇慢无比,我将系统移到C盘固态硬盘会好很多。我就纳闷了,vm又不是第一次用,怎么会如此慢,单击系统任何地方都得等几秒钟才勉强响应,硬件配置是完全够的4核CPU+8G内存+128g固态+500g机械硬盘等。好过以前的电脑配置太多了。所以直接排除”...
2018-10-30 15:05:43
868
原创 git常用命令及解析
本文是基于原教程地址学习后的一个笔记记录,感谢原作者的无私分享!github遵守开源协议,fork后的仓库代码可以读写,甚至可以pull request给官方仓库来贡献代码。1.git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。git config --global us...
2018-10-26 17:57:08
151
原创 Qt自己编写keyboad虚拟键盘
由于项目中有需要用到虚拟键盘,首先想到的是系统自带的,笔者是Ubuntu16+Qt5.9。1.系统虚拟键盘的优缺点:优点:直接可以脚本调起,功能完善,稳定。外观完美。缺点:定制麻烦(详情看onboard帮助文档,英文),要想像手机那样用时自动显示,不用时自动隐藏,需要先设置系统的输入法,而且需要GNome的辅助功能支持。2.Qt5已经有自带输入法了。Qt安装的时候就有一个virtu...
2018-10-24 18:53:32
17201
10
原创 Qt想用QLibrary动态加载库,遇坑!
最近写了一个小组件没错就是虚拟键盘,打包成动态库了,但发现一个小问题,就是QLibrary动态加载总有问题当然,在做下面测试的之前,肯定是需要保证自己的dll是ok的,右击工程添加本地库是正常执行了的。首先在pro文件中即使添加库路径如下LIBS += -L$$OUT_PWD/../keyboard/debug/当然我删除了-lkeyboard,因为我要用QLibrary::load...
2018-10-24 17:56:04
4536
6
原创 ubuntu 16.04 关闭开启图形界面之systemctl命令
ubuntu16.04关掉图形界面启动,命令:systemctl disable lightdm.service确实生效了,但是由于不能显示笔者的应用程序(QT界面程序),系统一直卡死在启动界面,还不如进gnome界面了,故又想恢复,发现恢复之路坑太多了。1.因为界面卡死,是不能用输命令的,所以只能且系统模式,好在ctrl+alt+f1还是能用的,进入文本模式。2.百度systemct...
2018-10-23 16:38:53
6291
1
原创 QT5中Model/View模型的使用
该文章不对model/view的初级使用做解释qt引入Model/view结构,目的是为了提高传统QTabelWidget等的大数据刷新的效率。既然是为高效率显示而设计的,我们使用时就需要对其设计思路做了解。view的继承模型如下图:model继承模型如下图:结合两个类继承图,我们可以看出Model/view是完全分开设计的,目的就是解耦合,Model只做数据管理,view...
2018-09-30 14:50:31
17690
4
原创 libreCAD使用
维基百科libreCAD是QCAD的一个分支,由qt开发的一个免费开源跨平台2D CAD应用,该工程使用了libdxfrw库,所以支持dwg文件的读写。详细介绍参考维基百科。1.下载libreCAD源码github开源地址2.编译用qtcreator打开工程,发现如下图所示:工程提示信息:需要c++11标准支持,需要boost_1_53_0(需要格外下载)支持,以及自带...
2018-09-06 11:46:00
14132
6
原创 安卓x86下载地址
由于Google访问不了国内下载安卓x86可以去这个链接,支持迅雷:fosshub安卓x86下载系统安卓教程可参考搜索引擎如一下链接安卓x86安装android x86安装
2018-08-29 20:02:17
3699
原创 Linux 屏幕亮度调节
Linux屏幕亮度控制文件:amd/INVID显卡:/sys/class/backlight/acpi_video0/brightnessintel显卡则在:/sys/class/backlight/intel_backlight/brightness使用管理员权限改变该文件的值即可,最大值,可以看到该目录下又max_brightness文件...
2018-08-13 11:17:39
1715
原创 QT5如何打包到Ubuntu16
最近一个跨平台的项目打包折腾的够呛,所以记录一波。ldd 应用程序名可以查看该应用程序名下面的所有依赖库,所以该命令很重要。网上有人利用该命令去导出所以依赖库,附代码如下:#!/bin/shexe="./appname"#发布的程序名des="/home/myname/Qt5.9/"#目标路径deplist=$(ldd $exe | awk '{if (match($3...
2018-06-20 12:16:12
1516
原创 qt5.9中虚拟键盘的中文使用
qtvirtualkeyboard是qt基于qtquick的一个项目,源代码目录如下图:为何要提到这个呢,是因为本文想解释中文输入。否则只需在安装qt的过程中将qtvirtualkeyboard插件打上勾就能在qml工程中使用了。qtvirtualkeyboard工程包含例程,库,插件等。例程是basic一个简单的qml项目,库有多个语言库,在目录qtvirtualkeyboard\src\vir...
2018-05-04 11:59:10
7016
2
原创 Ubuntu/Windows使用glog(0.3.5版)
glog获取 git clone https://github.com/google/glog.git 或者直接网页下载下来,tar -xzvf google-master*.gzglog编译生成 如果是window平台,得使用CMake工具生成解决方案并编译生成相应的libglog.dll,libglog.lib本文不作赘述。前面以说过CMake的使用。 Ubuntu生成...
2018-04-03 20:08:42
1597
原创 CEF3的使用说明及CMake使用
一.CEF简介Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。简单说就是Chrome的开源版,目前很多所谓的双核浏览器,实质就是chrome+IE的双核。基于HTML5的支持,以及v8引擎的效率,在软件中嵌入chromium是个不错的选择,而且目前市面上应用...
2017-12-08 16:48:16
12299
5
原创 开发界面之窗口边框重绘
基于上篇已经解决了富图软件窗口child的效果。这边主要仿照其重绘边框——即活动窗口边框高亮,本文不讲标题栏/border重绘(难度是比Client绘制要难,但是社区也有人做了相应的demo),基于富图考虑,它不要标题栏,我们也用无边框窗口绘制就好了。1.边框及标题栏绘制void CDlgFrm::OnPaint(){ CPaintDC dc(this); // device cont
2017-11-24 11:00:35
1605
原创 子窗口与弹出窗口的坑使用笔记
之前写过一篇日志说child窗口edit不能输入。虽然解决了,但并不完美,后面发现能输入了,但是鼠标不能选择文字,键盘却可以。再加上以前遇到的一些问题,比如窗口透明,背景色,甚至子窗口的Z序也让人蒙圈(后创建的在后面去了)等都不顺利,换句话说是相对popup窗口而言。总之微软对于子窗口的实现就像个半成品。关于edit不能选择文字,还发现一个问题可以解决,就是去掉子窗口的标题栏,如果实在需要拖动
2017-11-21 18:31:54
690
原创 Ubuntu16.04:Python3+Nginx+Django+mysql+git配置,sublime text
1.安装python3sudo apt-get install python3如果是升级python到python3需要先安装3,然后删除/usr/bin/目录下的默认python linksudo rm -rf python再建立新的链接sudo ln -s /usr/bin/python3.5/usr/bin/python这样输入python命令就相当于输入python
2017-10-12 17:48:22
464
原创 Python学习笔记
作为一个C++程序员,学习Python,我想笔记还是没必要像写入门教程一样。入门教程可以参考廖雪峰学Python教程。1.Python是啥?Python是一种动态的现代编程语言,完全面向对象类似Java,但与Java区别最大的估计也就是Python还是动态运行的语言了吧——类似脚本语言(如:Javascript)。无需编译,直接通过解析器运行。2.Python特色:就凭“人生苦短,
2017-10-08 15:53:26
332
原创 CComboBox::ShowDropDown光标消失的问题
MFC中,当使用ccomboBox的输入自动显示下拉列表时,光标消失。原因是由于该控件是由编辑框和下拉列表组合的。当在编辑框中输入时,光标会变成输入模式,原来的cursor隐藏,当鼠标移动时才显示在新的移动后的位置(CEdit),而CComboBox不会显示。而且你会发现当鼠标移出程序时又能显示,感觉鼠标回到了桌面窗口。解决方法就是在OnCbnEditchange()做文本更改后,发生WM_S
2017-09-18 16:39:36
1289
原创 写MFC程序还是先注释写注册表或者先清理注册表吧!
血的教训,浪费了大把时间调试找问题,然而却不知道MFC自动写注册带来的巨坑有多坑。一次次让你怀疑人生,微软这个设计老子真心想拍死你。1.自动写注册表,这里说自动是创建工程自带SetRegistryKey将巨坑埋下伏笔2.注册信息不是空,讲道理应该为空,但老vc都知道软件保留用户操作习惯是默认的。3.注册信息奇多,含菜单/工具栏/状态栏/停靠窗口,,,似乎除了main client
2017-08-04 18:45:26
1039
原创 mfc非模态对话框Child窗口CEdit控件获取不到焦点问题
遇到的问题就是创建一个非模态的子窗口。发现子窗口上的edit控件总是不能被激活,开始担心自己工程出问题了,于是新建了一个sdi,如图问题依然存在,既然如此那就在新工程中找问题,先设置对话框style,popup/overlap都能正常使用,再试试模式对话框(有点没必要,因为模式对话框不能是child)依然没问题,为了保守起见,还是多托几个控件靠谱,发现只有edit无效,尴尬。那就只能对edit下手
2017-07-25 16:25:20
3832
2
原创 由Create一个Child窗口,导出的z序问题
首先遇到的情况,直接看图看到这现象有点怀疑人生,Windows默认Create顺序是按照Z序依次递增的,然而为何会出现如此现象?首先和窗口类型确实有关:用的是Child,如果使用popup/overlapped都正常,我们通常非模态对话框用overlapped最多,这次要做子窗口管理,才发现有如此问题。考虑在窗口类型上选择:层叠/弹出/子窗口。选择Child类型是必须的(根据需求)。于是想
2017-07-17 18:13:35
324
原创 由花屏引出的WS_CLIPCHILDREN,WS_CLIPSIBLINGS理解
WS_CLIPCHILDREN,使得父窗体在绘制时留出其上的子窗体的位置不去画它,而那片区域留着子窗体去画。WS_CLIPSIBLINGS,必须用于子窗体(Child),使得该子窗体在收到WM_PAINT时同时令其兄弟窗体(MSDN讲必须不在该区域,即不与之重叠)也会被PAINT。//下面也是对WS_CLIPSIBLINGS的理解所有的overlapped窗口和popup窗口,都有
2017-07-16 16:33:56
1903
原创 VC ScreenToClient与ClientToScreen
The ClientToScreen function replaces theclient-area coordinates in the POINT structure with the screen coordinates. The screen coordinates are relative to the upper-left corner of the screen. Note
2017-07-14 11:24:07
1004
原创 关于Windows、linux跨平台的一些建议
在你做跨平台开发时,难免会遇到一些因操作系统特性带来的麻烦。本文集聚部分,并以Windows,linux为目标平台分析。由于java,Python等语言基本锁定自家编译器、IDE,也就没有C/C++这样的麻烦了,本文还是以C/C++为主。1、 关于路径和头文件路径分隔符的问题在Windows中,正斜杠和反斜杠都可以,但是在Linux中,只能是/。在Windows中,路
2016-10-11 14:57:55
3211
转载 QT 的信号与槽机制介绍
信号与槽作为 QT 的核心机制在 QT 编程中有着广泛的应用,本文介绍了信号与槽的一些基本概念、元对象工具以及在实际使用过程中应注意的一些问题。
2016-09-06 18:19:01
309
三种CheckComboBox控件
2018-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人