hjjdebug的专栏

私信 关注
hjjdebug
码龄13年

时间,地点,人物,事件,原因,经过,结果。

  • 1,487,307
    被访问量
  • 441
    原创文章
  • 2,144
    作者排名
  • 191
    粉丝数量
  • 于 2007-09-29 加入CSDN
获得成就
  • 获得162次点赞
  • 内容获得106次评论
  • 获得336次收藏
荣誉勋章
兴趣领域
  • #数据库管理
    #数据库开发
TA的专栏
  • 运行错误实例
    4篇
  • 编程基础
    15篇
  • linux下工具
    7篇
  • C 编程
    33篇
  • c++ 编程
    24篇
  • bash 编程
    13篇
  • awk 编程
    7篇
  • 汇编语言
    4篇
  • perl 编程
    3篇
  • php
    2篇
  • python 编程
    4篇
  • lisp 编程
    1篇
  • java 编程
    7篇
  • bat 编程
  • nodejs
    1篇
  • qt 编程
    25篇
  • windows 编程
    7篇
  • 网络编程
    5篇
  • vim编程
    5篇
  • linux 基础知识
    12篇
  • qemu/bochs/vmware
    7篇
  • ubuntu/centos
    8篇
  • 系统管理
    1篇
  • android
    13篇
  • vim&emacs
    18篇
  • config
    4篇
  • makefile
    10篇
  • cmake,qmake
    2篇
  • 编译连接(gcc 等)
    12篇
  • kernel
    13篇
  • 调试相关(gdb kgdb kdb等)
    18篇
  • bash 使用
    10篇
  • 网络应用
    15篇
  • svn和git
    11篇
  • 开源软件
    16篇
  • 模块与驱动
    6篇
  • 正则表达式
    1篇
  • 文件系统
    18篇
  • 逆向
    11篇
  • 数据库
    8篇
  • 音频
    3篇
  • 股票
    10篇
  • 象棋
    2篇
  • 杂项
    15篇
  • study-research
    4篇
  • 初等数学物理
    6篇
  • 中国文化
  • bootloader
    5篇
  • 工具函数
    3篇
  • 嵌入式系统
    2篇
  • 数学
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

gcc 杂项

----------------------------------------消除 warning: "unused parameter xxxx"警告----------------------------------------如下定义一个宏即可:#define UNUSED(x) (void)x举例:UNUSED(argc);UNUSED(argv);------------------------------------------------------------gcc 关
原创
29阅读
2评论
0点赞
发布博客于 2 月前

希腊字母在Vim 中的输入方法

希腊字母在Vim 中的输入方法:希腊字母读音可以百度百科希腊字母得到希腊字母在vim 中的输入方式, 在digraph 中是如下定义的.a* α 945 b* β 946 g* γ 947 d* δ 948 e* ε 949 z* ζ 950 y* η 951 h* θ 952 i* ι 953 k* κ 954 l* λ 955 m* μ 956 n* ν 957 c* ξ 958 ...
原创
35阅读
0评论
0点赞
发布博客于 2 月前

2个usb 主控器,为什么出现3个总线?

2个usb 主控器,为什么出现3个总线?甲: 先了解一下 ehci, xhci, hci 是什么.要进行usb通讯,需要一端是usb 主控器,另一端是usb 从设备它们之间通过什么协议来通讯呢? 这要看主控器接口了hci (host controller interface)定义 usb1.1 协议为 ohci(open host controller interface)定义 usb2.0 协议为 ehci(enhanced host controller interface)定义 usb3
原创
34阅读
0评论
0点赞
发布博客于 2 月前

自然数e的存在性证明.

e 是如下定义的.e = 一: 证明它有上界:我们设函数 y=f(x) = 把后面的式子按二项式展开.= < 上面这个数列是一个收敛很快的数列, 所以有上界,证明如下: (比日取其半,万世不结的序列还快速收敛)< < 3如此证明 3 是它的一个上界!同时也证明2是它的一个下界.二: 证明该函数是单调递增的.考察 y=g(x)=ln(f(x))= = 当n 趋于无穷时, y 是>0 的.再对y 求导数:对该函...
原创
43阅读
0评论
0点赞
发布博客于 3 月前

指数函数e^x和对数函数lnx 导数的求导过程

一: y= 的求导过程. = 我们把x视为常数,把 提取了出来,后面是0/0 的极限,我们需要求出来.结果就有了.改变一下形式, 令 则 = ln(1+t), 于是里边的这个式子 大家应该熟悉, 这就是自然数e 的定义, 可能大家看到的更多是这种形式吧 显然它们是等价的.于是上面那个0/0 极限就是1了,于是得证!二: y=lnx 的求导过程....
原创
429阅读
0评论
0点赞
发布博客于 3 月前

解决Ubuntu18.04下VMware开启虚拟网络编辑器无反应

解决Ubuntu18.04下VMware开启虚拟网络编辑器无反应我确信原来vmware->Edit->Virtual Network Editor 肯定是可以工作的.可是现在点击却没有反应了, 怎么办?重启一个控制台, 运行vmware-netcfg很好,它启动了,弹出了输入密码对话框, 输入密码后,弹出了配置对话框,如下图:集成环境下失掉反应了,但控制台界面还可以配置, 赶紧修改为自己需要的配置吧.我此次设置的是虚拟机独立网卡工作,虚拟机使用有线网卡eth0 工作
原创
166阅读
1评论
0点赞
发布博客于 3 月前

php 语句辨析

<?php/* new self() 和 new static() 的区别. * 这两个函数都是创建一个对象的意思,但到底是什么差别 */class Base { public function getNewSelf() { return new self(); } public function getNewStatic() { return new static(); }}class Extend1 extend.
原创
27阅读
0评论
0点赞
发布博客于 3 月前

正则表达式,匹配第二个双引号

正则表达式,匹配第二个双引号例如: 将下面第二个双引号前加上=echo "DS".DS;echo "THINK_PATH".THINK_PATH;echo "LIB_PATH".LIB_PATH;变成如下格式:echo "DS=".DS;echo "THINK_PATH=".THINK_PATH;echo "LIB_PATH=".LIB_PATH;我采用的是如下方式:vim 中, 其它也可参考.:%s/\(".*"\)"/\1="/把匹配到的第一部分作为分组1来替换...
原创
290阅读
0评论
0点赞
发布博客于 3 月前

OpenSSH for windows (64bits)

1,下载openSSH windows版(注:该版本是64位) 2,解压到C:\Program Files\OpenSSH 不要放在别的路径下,官方这样要求的 3,cmd到openSSH路径下 依次执行 1)安装sshd服务 powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 2)开放22号端口(如果你在windows关闭了防火墙并配置了入站规则可以不执行如下命令,多执行不影响) netsh advfirewall firewall add rule name=sshd dir=in action=allow p
gz
发布资源于 3 月前

vim 对文件进行批量编码转换.

vim 对文件进行批量编码转换.问题:新到一批文件php, html 是用gbk 编码的,现在想转换为utf8 编码操作:用vim 变化是最简单的了, 当然别的工具也行,如果支持批量转换的话.1. 用vim 打开所有要转换的文件. 例如打开所有php 文件$ vim *.php2. 用argdo 命令对每一个文件执行转换命令$ argdo set fileencode=utf8 | update注: 当在一行书写多个vim 命令时,要用 | 隔开, 第一条命令,设置文件编...
原创
36阅读
0评论
0点赞
发布博客于 3 月前

ubuntu18.04 首次登录mysql未设置root密码的解决方法

ubuntu18.04 首次登录mysql未设置root密码的解决方法首先先登入数据库,然后修改root 用户密码.甲: 登入方法: 有一个隐藏的用户名,密码可以使用.在/etc/mysql/debian.cnf 中记录有原始的用户名,密码信息.如下:sudo cat debian.cnf[sudo] hjj 的密码:# Automatically generated for Debian scripts. DO NOT TOUCH![client]host = lo...
原创
61阅读
0评论
0点赞
发布博客于 4 月前

Ubuntu下查看usb设备信息

Ubuntu下查看usb设备信息新来了一个usb 设备, 飞天的加密狗. 怎样来熟悉它?插上硬件1. 用dmesg 看看内核说什么?[ 1738.688160] usb 1-1.2: new full-speed USB device number 8 using ehci-pci[ 1738.798968] usb 1-1.2: New USB device found, idVendor=096e, idProduct=0209[ 1738.798974] usb 1-1.2: New
原创
619阅读
0评论
2点赞
发布博客于 4 月前

makefile 使用举例

甲. 让make 每次都执行特定的命令例子:all: date说明:all 是第一个目标,所以成为默认的目标.DEFAULT_GOAL由于all文件不存在,所以必须重新制作目标all,制作的方法是,执行date命令乙. 让make 每次都更新文件例子: 热热身.file = test.txtall: $(file)$(file) : date > $@分析: 上述写法,1.all依赖于(file),生成all的配方是空,所以对"all"无需做任何事2.生成(fil
原创
82阅读
0评论
0点赞
发布博客于 5 月前

modbus_tcp 协议

modbus_tcp 协议github 上有代码.甲. 先解释一条命令, 在此基础上结合代码阅读理解.TEST WRITE/READ:[00][01][00][00][00][06][FF][04][27][10][00][10]Waiting for a confirmation...<00><01><00><00><00><23><FF><04><20><AA><55
原创
316阅读
0评论
0点赞
发布博客于 5 月前

svn 检出 旧版本文件.

************************************************************svn 检出 旧版本文件.************************************************************不能直接用checkout, 而需要先建对应svn目录, 再调用svn update.核心只是这一句话, 下面给个例子,详细说明操作过程.命令: svn update -r <版本号> <文件名>~~~
原创
153阅读
1评论
0点赞
发布博客于 6 月前

c++的重要特性之一,继承到底是什么概念呢?

----------------------------------------author:hjjdebugdate: Fri Aug 14 17:25:19 CST 2020----------------------------------------继承,简单的说就是你的就是我的.但到底是什么概念呢?1. 子类继承父类,是不是把父类的私有成员变量也继承了, 子类对象的大小是多少呢?2. 子类调用父类的成员函数,汇编程序是不是调整this指针然后才调用的父类地址?3. 外部调用子类
原创
61阅读
0评论
0点赞
发布博客于 6 月前

tr_research.tar.gz

本篇文章帮助你理解如下几个问题: 1. 翻译过程是如何进行的? 2. 翻译的上下文是指的什么? 3. 如何使用QT_TR_NOOP, QT_TRANSLATE_NOOP 4. QObject::tr() 是如何工作的. 5. lupdate 工具是如何工作的. 6. 如何提取宏定义中的字符串? 也就是说宏定义中字符串如何支持国际化? 7. 类中字符串如何支持国际化. 8. 全局变量引用字符串如何支持国际化. 详细请阅读readme.txt 和把玩代码.
gz
发布资源于 6 月前

QT 的国际化支持操作要点.

----------------------------------------author: hjjdebugdate: Fri Aug 14 13:11:15 CST 2020----------------------------------------本篇文章帮助你理解如下几个问题:1. 翻译过程是如何进行的?2. 翻译的上下文是指的什么?3. 如何使用QT_TR_NOOP, QT_TRANSLATE_NOOP4. QObject::tr() 是如何工作的.5. lupdate 工
原创
101阅读
0评论
0点赞
发布博客于 6 月前

strtok() 用法的深入研究.

/*author: hjjdebug* date: Wed Aug 12 13:38:07 CST 2020*//* 当我在写一个删除字符串尾部的\r,
字符函数时, 发现strtok 并没有按我特定的想法走,* 即并不是简单的吧源字符串中的分隔符都用0替换. 也有特例. 见下面的测试程序. 只有一个字符"
"就不是这样!!* 广义的讲,当第一个字符就是分界符时, strtok并没有把第一个字符替换为0, 而是把返回值指向了下一个字符串.所以才有了如下的测试程序,进一步研究了一下...
原创
50阅读
0评论
0点赞
发布博客于 6 月前

通道信的49个图标(附公式)

通道信的49个图标都是什么,只要在x,y 位置画出来即可.下面是公式: 你可以学到DWAWTEXT 和 DRAWICON 的用法C0:-1,COLORWHITE;B:10,COLORWHITE;A1:=8;A2:=6;A3:=4;A4:=2;A5:=0;A:=CURRBARSCOUNT;DRAWTEXT(A=92,A1+1,'1');DRAWICON(A=92,A1,1);DRAWTEXT(A=84,A1+1,'2');DRAWICON(A=84,A1,2);DRAWTEXT(A=7
原创
64阅读
0评论
0点赞
发布博客于 6 月前

用vim 透明编辑远程文件(scp协议)

------------------------------------------------------------用vim 透明编辑远程文件(scp协议)------------------------------------------------------------请先确认你安装了netrwPlugin.vim 插件, 同时也要保证双机之间支持scp 协议(安装相关服务)1. 先保证scp 是可以正常工作的, 例如, 要编辑192.168.1.136主机, /opt/ma.conf 文
原创
93阅读
0评论
0点赞
发布博客于 6 月前

白话讲解QT中, setSceneRect

白话讲解setSceneRectQGraphicsScene::setSceneRect ( qreal x, qreal y, qreal w, qreal h );w,h 是寬高值,无需解释.x,y 是左上角坐标,它是参考scene 坐标系的.讲清这个位置有点绕, 还是用白话说吧,能读懂需要一定基础. 首先有2个坐标系的概念场景坐标系,视口坐标系.问: setSceneRect(x,y,w,h), 其x,y 左上角坐标到底是什么意思? 哪个坐标系?答: 经研究, x,y左上角的数值是随.
原创
474阅读
2评论
0点赞
发布博客于 7 月前

buttonTable.zip

QTableWidget 是qt 提供的表格控件, 这里需要一个按键矩阵, 所以将按键作为一个单元塞到表格中,方便管理. 有一张图片显示了运行效果.
zip
发布资源于 7 月前

有条件的打印函数名称.

有条件的打印函数名称.1. 在qt中,打印函数名称可以用如下宏实现:#define PRINT_FUNC_NAME \qDebug()<<" in "<< __FUNCTION__这个宏,克服了在函数中输入不同的函数名称的烦恼!是的,我曾经依靠vim强大的编辑功能,去蛮力的在每个函数中来输入函数名称以达到要求,而现在有了这个宏,优雅多了.2. 如何有条件的打印, 例如当我定义了_DEBUG_INFO 时打印, 否则就不要打印.在#define 中嵌入#ifdef
原创
61阅读
0评论
0点赞
发布博客于 7 月前

virtualpanel.zip

用qt4 实现的虚拟面版, 上面有几个指示灯,几个按键, 指示灯和按键数量可自己定义, 指示灯可以定义点亮状态为红,绿,蓝, 熄灭固定为灰色.
zip
发布资源于 7 月前

ubuntu18 关于程序升级的傻瓜式操作.

ubuntu18 关于程序升级的傻瓜式操作.应用环境是这样的, 在一个ubuntu18的机器上运行着一个程序,程序有可能要升级, 升级就是把U盘中的一个升级包,解压缩到磁盘上的一个固定位置就可以了.但是,操作的人可能不懂linux, 也不会命令行操作, 甚至不会解压缩文件. 所以要求:在界面上放一个升级图标,双击这个桌面图标, 自动从U盘解压缩文件,覆盖原来的文件杀死原运行文件,执行升级后新运行文件.通过分析以上需求,我们分两部分进行,第一: 编写一个脚本文件,完成解压升级,关闭启动程序
原创
69阅读
0评论
0点赞
发布博客于 7 月前

文泉驿字体的使用:

文泉驿字体的使用:1. 安装文泉驿字体文件将字体文件直接拷贝到下面目录./usr/local/qt-4.8.6/lib/fonts我安装了文泉驿字体,先看看安装了哪些字体:# ls -l wenquanyi_*-rw-r--r-- 1 dbus dbus 1102155 Nov 6 2019 wenquanyi_120_50.qpf-rw-r--r-- 1 dbus dbus 715342 Nov 6 2019 wenquanyi_...
原创
181阅读
0评论
0点赞
发布博客于 8 月前

QButtonGroup 实现QPushButton 互斥管理

/* QButtonGroup 实现QPushButton 互斥管理, 一个按钮按下,其它按钮会被自动弹起, 按下的按钮用背景标蓝表示* 功能简单,逻辑请看注释,直接上代码了.*/#include <QtGui>QString but_style=QString("\QPushButton:checked { /*按钮被选择时*/\ background-color:blue;\ }");int main(int argc, char *ar...
原创
355阅读
0评论
0点赞
发布博客于 8 月前

git . 查看某个文件的提交历史

git . 查看某个文件的提交历史常用命令及意义-----------------------------------------------------------1. git log filename显示一个文件的修改历史还可以用 git log --stat filename 看出每次提交变化的大小2. git log -p filename, 相当于 git log --full-diff filename显示每次提交的差异3. git show commitID filen..
原创
309阅读
0评论
0点赞
发布博客于 8 月前

QT 常用文件与目录操作

QT 常用文件与目录操作1. 删除一个目录及其下面的所有文件QString path = "/tmp/maps"QDir dir(path);dir.removeRecursively(); //qt4 不支持//用下述遍历方法QDir d(path); //path 不能为空,为空删出当前目录.小心!!d.setFilter(QDir::Files); //只删文件int i,count=d.count();for (i=0;i<count;i++)d.remove(d[i])
原创
132阅读
0评论
0点赞
发布博客于 8 月前

linux(M6G2C) 修改配置 dts 文件

dts 是device tree source 的简写,设备树源文件, linux 修改硬件就靠该这个文件了.1. 来到 arch/arm/boot/dts 目录, 有很多种dts 文件, 找到你要修改的那个, 从内核编译的过程中能知道你要编译的那个文件的名称. 我的叫 imx6g2c-256m.dts2. 参照原来的样子来依样画葫芦的改, 例如 原来有 GPIO4_IO21 的配置是正常的, 如下: MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x10b0...
原创
556阅读
0评论
0点赞
发布博客于 9 月前

qt 在控件上绘制图形

qt 在qlabel 上画一个叉, 用来演示如何在qt 控件上绘制图形,只要重写控件的paintEvent 方法即可!很简单.
zip
发布资源于 9 月前

在循环体内定义简单变量,和在循环体外定义简单变量效率是一样的

在循环体内定义简单变量,和在循环体外定义简单变量效率是一样的.因为简单变量并不存在创建和释放的过程,只是在栈上预留内存空间见下例示范.$ cat main.cpp#include <stdio.h>#include <string.h>int main(){ for(int i=0; i<5;i++) { char buf...
原创
266阅读
1评论
1点赞
发布博客于 1 年前

工具杂项

好脑筋不如烂笔头,用的再熟, 不用一段时间也可能忘掉!好用工具推荐, linux 版(估计windows 下也有对应版本)1. 二进制编辑工具: 010editor2. 文件比较工具:bcompare...
原创
76阅读
0评论
0点赞
发布博客于 1 年前

c++设计模式之概括--结构型模式

c++设计模式之概括–结构型模式结构类模式都是原来的类已经定型, 现在需要在原基础上进行一些优化,功能控制,功能扩充等,我们应该怎么做的问题. 那就是,保留一个原对象的指针, 当对我们的包装类调用的时候,我们要恰当的调用保留的对象的函数. 包装,当然是有目的的.结构型模式:适配器模式:将一个物件的界面’转接’成当事人预期的样子。 目的,协调两类工作桥接模式:将一个抽象与实现解耦,以...
原创
75阅读
0评论
0点赞
发布博客于 1 年前

c++设计模式之概括--构造型模式

c++设计模式之概括–构造型模式构造型模式有5种,工厂方法模式,虚拟工厂模式,单例模式,原型模式,构建者模式.她们的共同特点是封装了产品的构建过程. 简述如下:工厂方法模式:用工厂来创造产品.工厂方法模式用法:实例代码: Factory* fac = new ConcreteFactory(); //一个虚工厂指针指向实际工厂 Product* p = fac->Create...
原创
71阅读
0评论
0点赞
发布博客于 1 年前

the-23-gang-of-four-design-patterns-with-cplusplus.tar.gz

c++ 23种设计模式参考代码, 帮助理解23种设计模式 源代码整理自 k_eckel 的《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》 内含CMakelist.txt 文件, 方便linux 下编译运行. 我设定的积分是免费,0积分,代码公开,以后下载会不会要积分就不知道了.
gz
发布资源于 1 年前

何时使用工厂方法模式?

何时使用工厂方法模式?为什么要用工厂方法模式?为什么要多此一举用工厂方法?用new 创造产品与用工厂方法创造产品有什么不同?工厂方法有用吗?这些都是同一类问题.工厂方法是创造型模式的一个最典型模式, 理解了这个模式,其它创建型模式就好理解了.网络上文章洋洋洒洒,但大都不是简单明了的答案. 不能让人信服.是的,我创建一个产品,直接用new 一行代码创建就可以了.Product1...
原创
181阅读
0评论
0点赞
发布博客于 1 年前

c++ 状态模式,消除switch-case 语句

/*author: hjjdebug* date: Thu Feb 27 21:59:29 CST 2020*//* c++ 状态模式,消除switch-case 语句* 前言: 有一个系统,包含了5个project, 但是,每次运行只会运行一个project,* 运行哪个靠一个projnum来决定, 所以代码里到处都是switch(projnum)的语句,* 难道就没有更好...
原创
363阅读
0评论
1点赞
发布博客于 1 年前

c++编程, 解除文件间的依赖关系,接口隔离原则

c++编程, 解除文件间的依赖关系,接口隔离原则这里所指的接口隔离,是把不同的接口包在不同的文件中.相关联的接口包在一个文件中.我曾经贪图方便,使用过集中管理的方式.集中管理的全局变量 global.h,global.cpp集中管理的全局函数 subs.h subs.cpp所有的全局变量放在一个文件中叫global.cpp其对应的头文件是global.h, 用以对外声明全局变量,...
原创
335阅读
0评论
0点赞
发布博客于 1 年前

ubuntu18下qt4, qt5环境切换

ubuntu18下qt4, qt5环境切换我需要用qt4来开发, 因为我的arm环境是qt4的. 这样pc上装qt4 能保持与它最大的兼容性但我想学习qt5, 所以我安装了qt4, qt5.虽然我可以把代码写成qt4,qt5兼容的形式, 但是,有时候我还是需要切换一下qt4,qt5的编译环境假定qt4, qt5 都已经安装完毕,查看当前的环境hjj@hjj-Inspiron:~$ qm...
原创
310阅读
0评论
0点赞
发布博客于 1 年前

编译内核模块及交叉编译内核模块

理解了它就简单了,所以关键是理解.编译内核模块,可以用两种方法.1. 常规方法,通过make menuconfig 去设置对应的项,将功能编进内核或编成module.2. 利用内核环境直接从模块源代码编出module第一种方法菜单操作,不易出错.第二种方法更简单,实质.可以理解模块的生成过程下面以usb转串行口驱动的生成为例来说明.将pl2303.c pl2303.h 源码cop...
原创
1099阅读
0评论
0点赞
发布博客于 1 年前

linux ldd 的实质

linux ldd 的实质writter: hjjdebuglinux 下ldd 命令,是glibc 下的一个sh脚本文件, 就是来看看执行程序依赖关系的.ldd -> loader dependency. 应该是这个意思了.示例: 我的机器上,$ ldd /bin/ls linux-vdso.so.1 (0x00007ffe3ade1000) libselinux.so.1 ...
原创
109阅读
0评论
0点赞
发布博客于 1 年前

LFS-BOOK-CN.html

首先,你应该知道Linux From Scratch 是干什么的,这篇文档是中文的. 由 Linux 中国 - LCTT - LFS 翻译小组 翻译 无分页,所有文档在一个页面中,方便查找. 还是看中文文档方便操作
html
发布资源于 2 年前

configure 深层解读!

configure 深层解读!author:hjjdebugdate: 2019年 12月 28日 星期六 22:06:34 CST这是hello world 简单c程序运行configure 的输出信息,它们到底是什么含义呢?./configurechecking for a BSD-compatible install... /usr/bin/install -cchecking...
原创
236阅读
0评论
0点赞
发布博客于 2 年前

autoconf automake 进一步解读

autoconf automake 进一步解读author:hjjdebugdate: 2019年 12月 28日 星期六 22:06:34 CST学习其工作原理如何进一步控制Makefile 的生成,例如 修改编译选项时,添加调试信息, 添加-D宏定义,添加第三方库包含路径,添加第三方库,开源软件,一般只要configure 能通过,make 是没有什么问题的,可见con...
原创
117阅读
0评论
0点赞
发布博客于 2 年前

autoconfig,automake 编译project

automake autoconfig 编译project编辑文件:helloworld.cconfigure.acMakefile.am创建过程:autoscan; aclocal; autocconf; automake --add-missing; ./configure ; make下面给出helloworld 的例子$cat helloworld.c#include...
原创
57阅读
0评论
0点赞
发布博客于 2 年前

vmware 解决内核启动时mount 根文件系统失败

vmware 解决内核启动时mount 根文件系统失败我的环境是在vmware 下进行的,但解决问题的方法是相通的.我的问题是scsi 硬盘驱动问题,但纵然是别的问题,也一样可以追踪解决.错误提示:VFS: Cannot open root device “sda2” or unknown-block(0,0)到底是内核问题还是根文件系统问题?指定的根文件系统可以用chroot...
原创
150阅读
0评论
0点赞
发布博客于 2 年前

sunpinyin 在ubuntu18上无法打开设置窗口

问题:sunpinyin 在ubuntu18上无法打开设置窗口解决过程:执行打开sunpinyin配置窗口的过程,并不会向系统log输出信息,无从参考.查看能打开窗口的机器进程ps -ef,发现有进程python /usr/share//ibus-sunpinyin/setup/main.py在打不开窗口的机器上执行该命令,有错误输出Traceback (most recent ca...
原创
257阅读
0评论
0点赞
发布博客于 2 年前

linux 下命令使用记录

linux 下命令使用记录在指定目录下使用locate 查找命令updatedb -U . -o my.dblocate -d ./my.db <xxxx>date -s:按字符串方式修改时间只修改日期,不修改时间,输入:date -s 2013-09-01不修改日期,只修改时间,输入:date -s 17:32:00...
原创
41阅读
0评论
0点赞
发布博客于 2 年前

qmake 使用总结

qmake 是一种使用简单的makefile生成器,可以通过man qmake 和assistant来了解qmake的使用.下面系统而简洁的介绍一下它的用法. 大体上掌握qmake的用法1. 基本用法qmake -project 生成.pro工程文件qmake 生成makefile 文件然后运行make生成可执行文件举例:一个工程,由main.cpp,widget.h,widget....
原创
207阅读
0评论
0点赞
发布博客于 2 年前

解决百度翻译,看得到喇叭在动,但是不发音问题

解决百度翻译,看得到喇叭在动,但是不发音问题我安装了flashplugin, 可以在上面看视频,说明是可以播放声音的,但百度翻译就是不发音,搜索了网络也没有解决问题,几乎束手无策了.我的确想过,要是能知道Firefox此时在干吗就好了?要是知道它运行出了什么错误就好了?于是我想到了,必需要打开它的log!功夫不负有心人,原来这个网络上叫firefox控制台输出.打开firefox ...
原创
472阅读
0评论
0点赞
发布博客于 2 年前

嵌入式linux使用dropbear遇到的免密登陆失败问题

嵌入式linux使用dropbear遇到的免密登陆失败问题至于如何实现免密登陆,只需把登陆方的id_rsa.pub添加到服务器的authorized_keys即可详细可参考其它内容此记录下解决问题的过程1. 用ssh -vvv root@192.168.1.1 查看,有如下记录debug3: authmethod_is_enabled publickeydebug1: Next aut...
原创
1223阅读
0评论
0点赞
发布博客于 2 年前

C++对象构建与使用,error: taking address of temporary [-fpermissive]

error: taking address of temporary [-fpermissive]获取临时对象的地址,编译器是不允许的.这里要理解什么是临时对象,临时对象就是无名对象,在语句行上直接用类生成一个对象,它的生命周期是在该行创建,又在该行销毁.对于一个已经销毁或行将销毁的对象,你拿到它的地址是没有意义的,所以编译器这个婆婆就武断的告诉你,别拿这个地址,你拿它没有用,不许拿,...
原创
1653阅读
0评论
1点赞
发布博客于 2 年前

cmake 学习入门

1. cmake 的学习入口 cmake 手册文档一把一把的, 就是不带tutorial, ubuntu16 下的apt文件就是这样,无语了! 我不需要读那么多,我只需要一个tutorial就可以了,而tutorial只能从网上不能从man手册或 apt文件中得到了. 不过github上有很多例子,也有tutorial文档及中文翻译文档,这里给个地址可以参考一下 http...
原创
108阅读
0评论
0点赞
发布博客于 2 年前

为什么选择putty 做控制台登陆工具

为什么选择putty 做控制台登陆工具背景: 与putty 并列的工具有teraterm, secureCRT, xshell 等等工具,本来只要习惯了一种操作即可. 原来在windows 下,我习惯用teraterm. 后来改到linux 下,不再用这些集成工具,而是喜欢用控制台直接操作命令,例如minicom,telnet,ssh bash 把这些命令很好的集...
原创
371阅读
0评论
0点赞
发布博客于 2 年前

update-alternatives 使用

------------------------------------------------------------用 update-alternatives 添加一个选择项------------------------------------------------------------目的: 我有一个x86-64下的gdb, 执行文件路径是/usr/bin/gdb想加一个调试...
原创
129阅读
1评论
0点赞
发布博客于 2 年前

systemd helloworld 服务实战操作.

systemd 的服务程序基础入门可以参考如下链接:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.htmlhttp://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html这里是一个简单的例子(hello 级别),实战操作帮助理解上述概...
原创
139阅读
0评论
0点赞
发布博客于 2 年前

从ubuntu14 向ubuntu16 升级历险记

从ubuntu14 向ubuntu16 升级历险记问题总找新手, bug总是欺生! 有时候你总是会被狠狠的被撞一下,被挤一下,从生变熟.在解决问题的过程中,你必然会查阅很多帖子, 学习相关知识.1. 救活屏幕在从ubuntu14 向 ubuntu16升级过程中,需要一个长时间的下载,安装过程.我真应该考虑是否可以用U盘直接安装系统,考虑到已有那么多安装的文件及现有工作,还是升级吧...
原创
97阅读
0评论
0点赞
发布博客于 2 年前

网络环境分析

网络环境分析目的: linux系统下,分析网络环境,搞清楚IP,网关,DNS,并且自己可以自己设置为静态IP上网.下面是自己的路由器,概要介绍一下功能.1. 通过无线ap上网下面是路由器的设置常用设置: (只让看)上网设置: 有一个宽带帐号,宽带密码。 由宽带服务商提供无线设置: 有一个无线名称(就是ap名称)和无线登陆密码,用户可以设置高级设置选项:(可以改)网络参数W...
原创
314阅读
0评论
0点赞
发布博客于 2 年前

linux 服务脚本分析

linux 服务脚本分析:以isc-dhcp-server 为例子. 我们跟踪阅读一下linux服务运行过程。1. 启动(start)服务sudo service isc-dhcp-server startservice 是一个脚本文件,其经过sh脚本处理,其结果等价于/etc/init.d/isc-dhcp-server start停止(stop)也同此理.这样我们知道,第一个域是...
原创
254阅读
0评论
0点赞
发布博客于 2 年前

size_t 到底是什么类型(有图有真相)

比hello 还简单的程序. 主要是为了分析一下预处理结果#include <stdio.h>int main(){ ssize_t a=5; return 0;}想看一看stdio.h中都包含了什么?想看一看ssize_t 到底是什么类型.好说,做一下预处理即可,生成main.cpp.igcc 预处理后面的数字官方参考链接https://g...
原创
360阅读
0评论
0点赞
发布博客于 2 年前

c语言摘要

标题谭浩强 c 语言程序设计将目录挂于此,看看c语言都有那些内容,表示我们熟悉了C语言!3.变量与表达式3.1 C语言的数据类型3.2 常量与变量3.3 整型数据3.4 实型数据3.5 字符型数据3.6 字符串常量3.7 各类数值型数据之间的混合运算3.8 算术运算符和算术表达式3.8.2 算术运算符和算术表达式3.11.6 运算符优先级和结合性4.语句4.1 C语句概...
原创
273阅读
0评论
0点赞
发布博客于 2 年前

linux0.11数据结构

函数都是对数据的操作,搞清了数据,才能搞清函数.最后一篇linux0.11博文,已经搞定它了,从此不写了.以此简单记录一下内存分配上的数据结构.甲: 高速缓冲区,1.概念:是一个动态结构数组,数组大小nr_buffers它使用了end(bss 的结尾)到buffer_memory_end 区间内存.它的头部是start_buffer = &end它有一个指针free_lis...
原创
174阅读
0评论
0点赞
发布博客于 2 年前

git 新路学习

1. 我只会用git clone, 从github上下点代码git 大名鼎鼎,但我svn一直用得好好的,足可应付. 公司的svn服务器是我架设的,权限也是我分配的,svn用的很熟,所以一直没有认真学习git.但是偶尔会从github 上下点代码. 命令行方式是用git clone, 就这么多了,再无其它了.曾经记得公司组织过学习git操作,泛泛而谈,没认真对待.2. git 有一个巨大的...
原创
70阅读
0评论
0点赞
发布博客于 2 年前

linux0.11 阅读笔记

----------------------------------------linux0.11 阅读笔记writer: hjjdebugdate: 2019年 07月 30日 星期二 10:20:44 CST----------------------------------------代码从以下网址获取:https://github.com/voidccc/linux0.11...
原创
67阅读
0评论
1点赞
发布博客于 2 年前

如何映射磁盘映像的分区

如何映射磁盘映像的分区linux0.11 调试环境中有一个硬盘影像hdc-0.11-new.img我想看看它的内容. 我的系统是ubuntu14. 当然应该在主系统上看.1. 将该文件映射到一个loop 设备上$ sudo losetup /dev/loop0 hdc-0.11-new.img但当我们mount 到一个安装点时却不能成功$ sudo mount /dev/loop0...
原创
491阅读
0评论
0点赞
发布博客于 2 年前

calltree-2.3.tar.gz

makefile 用qmake 生成, 去除了测试文件,已修改了代码文件中需要修改的地方. 在ubuntu14 下已经编译通过
gz
发布资源于 2 年前

vimrc 文件阅读

研究.vimrc 文件,我知道了那些脚本是如何被加载的!可以参考我的另一篇博客 <<查看vim 的启动过程>>, 不同的方法和侧面,本篇更细致,我的终极版前提: vim -V 默认是verbose=10其帮助中说 vim --help-V[N][fname] Be verbose [level N] [log messages to fname]...
原创
80阅读
0评论
1点赞
发布博客于 2 年前

linux qt程序向windows移植失败记.

linux qt程序向windows移植失败记.这是一个复杂的程序, 有源码,linux下可编译,想移植到windows 下运行失败原因不是因为是qt 程序,而是因为是linux 程序,因为牵扯到qt,也着实废了两天功夫.所以记录一下过程------------------------------------------------------------甲: windows 下qt...
原创
525阅读
0评论
0点赞
发布博客于 2 年前

嵌入式系统内核配置gpio 作为按键来输入

嵌入式系统内核配置gpio 作为按键来输入.想修改一下启动logo的背景,这很简单,1. 找到logo 对应的ppm 文件,修改背景,存储,重新make 生成内核.2. 将内核及uboot,rootfs 等用烧录工具烧录到flash盘中,然后再升级到系统中,发现按键都不响应了。gpio 作为按键来使用, 每个按键对应着一个gpio , 当按钮按下时,内核应该发出对应按键keycode被...
原创
549阅读
0评论
1点赞
发布博客于 2 年前

linux目录跳转利器z脚本阅读理解

前言: z 脚本介绍z 脚本是linux 下目录跳转的利器.它的工作原理是: a. 它维护有一个目录表,包含目录名称,权值和时间 b. 在每一个目录下执行操作,都会改变这个目录的权值和时间,这是靠$PROMPT_COMMAND 实现的 c. 当你要跳转到期望的目录时,你只有敲入简单的几个字符,z 会扩展为正则表达式,从目录表中查到最佳的匹配目录,完成跳转 d. ...
原创
192阅读
0评论
0点赞
发布博客于 2 年前

手工设置IP地址并上网

手工设置IP地址并上网ubuntu 下,动态获取IP 可以上网, 改为静态地址应该怎么改1. 设置与网关同网段不重复的IP地址2. 设定网关地址3. 设定DNS 地址, 实DNS 地址我知道的可以是114.114.114.114 或者 8.8.8.8嵌入式linux 系统 下配置使可以上网1. 查在S90start_userapp.sh 有配置 IP 地址的命令,例如:...
原创
337阅读
0评论
0点赞
发布博客于 2 年前

print_backtrace() 函数,c/c 也能打印函数调用栈

羡慕java可以轻松打印函数栈,c/c++能不能实现呢?gdb 的bt 命令就能看到函数的调用栈, 有时候直接打印函数调用栈对调试是很有帮助的.下面直接给出代码print_backtrace函数代码并付演示程序,很简单的,它调用了backtrace,backtrace_symbols函数#include <execinfo.h>#include <stdio.h&g...
原创
891阅读
0评论
0点赞
发布博客于 2 年前

退出时的回调函数: atexit, signal

工具函数: atexit, signal在嵌入式调试中,经常有segment_fault, 但却没有core_dump(当然ulimit是打开的),此时应该怎样调试?第一种(常规办法), 从main 开始单步跟踪函数找到问题点第二种(查看崩溃时的调用堆栈), 可是core_dump 没有生成,如何查看呢?然后我们在回调函数中打印出当前的函数调用栈,就可以知道程序在哪里退出了.1. 正...
原创
776阅读
0评论
0点赞
发布博客于 2 年前

010editor 过期处理

久不用010editor, 今天打开,它不让我用了!1. 跟踪了一下文件访问,下面两个文件引起了我的注意.1.strace|5530 col 7| 4582 open("/home/hjj/.local/share/SweetScape/010 Editor/010Editor90.cfg", O_RDONLY) = 161.strace|5583 col 7| 4582 open(...
原创
2326阅读
0评论
1点赞
发布博客于 2 年前

DPrintf 函数,在printf之前,先输出当前时间(精确到毫秒)

原因: 我的代码用了很多printf 函数输出打印信息, 现在我需要在一些关键函数处先打印时间, 以方便我进一步分析问题!目标:书写自己的printf 函数叫DPrintf吧,实现先打印当前时间,再输出相关打印内容。这样我就可以把原来的printf, 用DPrintf 来代替当然,我们不需要把洋洋洒洒的printf 代码拷贝于此,我们只需要简单的功能实现就可以了,这里借用了可变...
原创
1512阅读
0评论
0点赞
发布博客于 2 年前

嵌入式产品与Qt编程

甲:嵌入式产品设计考虑 1. 输出设备,显示屏,打印机,IO端口等. IO 端口可以通过操作文件描述符来控制. 用一个bit的信息可以控制IO的高低电平,也可以读入 打印机(串口打印机)可以通过操纵串行口来实现. 输出信息方式是文字. 显示屏是最主要的信息输出方式, 其向用户的展示信息的方式可以通过ascii, 文字,或者图形...
原创
784阅读
0评论
2点赞
发布博客于 2 年前

linux 下交叉编译开源代码(以arp-scan为例)

--------------------------------------------------------------------------------author:hjjdebugdate: 2019年 03月 04日 星期一 12:13:27 CSTdescription:此文档,用来简述一个开源软件,如何进行交叉编译移植到嵌入式平台上,以x86-64编译arm平台的arp-...
原创
767阅读
0评论
0点赞
发布博客于 2 年前

linux下一个磁盘映像,分析其主引导记录(2)

linux下一个磁盘映像,分析其主引导记录(2) IDA 中反编译的一个MBR 结果,补充了一些注释.; +-------------------------------------------------------------------------+; | This file has been generated by The Interactive Disassembler (...
原创
110阅读
0评论
0点赞
发布博客于 2 年前

linux下一个磁盘映像,分析其主引导记录(1)

linux下一个磁盘映像,分析其主引导记录(1)1.创建一个虚拟磁盘影像$mkdiskimage -o -M 1.img 256 256 63-o 是向控制台输出文件系统偏移-M 是用megabyte 计算柱面, 256,256,63 分别是柱面,磁头,扇区用mkdiskimage --help 可看到帮助生成1.44M 标准软盘的命令是$mkdiskimage 1.img 80 ...
原创
306阅读
0评论
0点赞
发布博客于 2 年前

计算机启动

电脑启动电脑启动从BIOS自检开始,自检通过后BIOS将以启动顺序依次检查磁盘的第一个扇区(512B,0磁道,0磁头,1扇区),载入的内存的地址为0x0000:0x7c00,如果载入扇区的最后两个字节是55和AA,就转到0x7c00处去执行,否则检查下一个启动设备通常这个大小为512B的程序就是主引导程序。主引导程序的功能MBR从分区表(PartitionTable)中找到第一个活动分...
原创
103阅读
0评论
0点赞
发布博客于 2 年前

延长vmware 虚拟机的启动时间,方便我们按键进入bios

延长vmware 虚拟机的启动时间,方便我们按键进入bios虚拟机启动时,等到它显示press F2 to enter setup ....它显示太快,我们根本看不清它显示的什么,也来不及按F2就过去了, 我们需要延长虚拟机启动时间,让我们有一个反应时间方法如下:1、关闭虚拟机,找到虚拟机系统的存放目录(注:不是虚拟机这个软件的安装目录),然后进入到相应系统的文件夹。举例:例如WIN...
原创
1852阅读
0评论
0点赞
发布博客于 2 年前

gdb: Don‘t know how to run. Try “help target“.

gdb 远程调试的一个问题:Don't know how to run. Try "help target".它在抱怨不知道怎么跑,目标是什么. 你需要为它指定target remote 或target extended-remote例如:target extended-remote 192.168.1.136:1234指明target 是某IP的某端口完整示例如下:targ...
原创
2005阅读
0评论
0点赞
发布博客于 2 年前

虚拟机windows显示网络电缆被拔出,重启ubuntu中vmware 服务即可!

早上开机,发现vmware 虚拟机中的window7 不能上网了!右下角的网络连接图标有一个大大的红叉,点开来看,网络连接上显示为网络电缆被拔出的提示, 同时也有一个大大的红叉号打开cmd查看,没有IP地址,到网上搜了一下,说是把NAT网络模式设置成桥接模式就可以了,试了一下,确实可以!中午到公司,我又把网络改成了NAT 模式,也是可以上网的。一直奇怪为什么早上忽然不能上网了呢? 一...
原创
1448阅读
0评论
0点赞
发布博客于 2 年前

macd 指标之思考

1. macd 的概念macd 是移动平均线发散汇集指标,英文名称moving average convergence divergence indicator2. macd 公式计算方法通达信指标公式:DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);DEA:EMA(DIF,MID);MACD:(DIF-DEA)*2,COLORSTICK;典型值 (sh...
原创
537阅读
0评论
0点赞
发布博客于 2 年前

linux svn checkout 指定版本号

svn co svn://url -rxxxurl 是你的svn 服务器地址,xxx 是你的版本号,不加-rxxx 将checkout 最新版本,签出指定版本号版本,就这么简单!
原创
11682阅读
0评论
2点赞
发布博客于 2 年前

QTimer 的使用

QTimer *m_timer = new QTimer();m_timer-&gt;start();运行时出现QObject::startTimer: QTimer can only be used with threads started with QThread网上搜了一下,怎么写得一大堆都看不懂呢,自己追查吧。这是使用QTimer 不当报出的一个警告,到底那里使用不当呢?我...
原创
294阅读
0评论
0点赞
发布博客于 2 年前

linux0.00 编译运行调试环境

linux0.00 编译运行调试环境, 在 ubuntu 14 下用as ,ld 编译连接,用bochs 来运行和调试!可参考如下代码:https://github.com/hjjdebug/linux0.00甲: 编译 1. wget http://oldlinux.org/Linux.old/bochs/linux-0.00-050613.zip 2. 将这个文件解压缩...
原创
414阅读
0评论
1点赞
发布博客于 3 年前

我的版本发布控制脚本

#author: hjjdebug#date: 2018年 11月 29日#我的版本发布控制脚本, 用到了bash 及 awk#功能:#第1,获取发布版本主版本号,次版本号,对应的svn版本号及打包的文件名称#     可以检查实际的svn号与发布的期望svn号是否一致#     若版本不一致,给出提示信息,退出, 可防止人为错误#第2, 利用here文档,生成zero.txt, m...
原创
712阅读
0评论
0点赞
发布博客于 3 年前

tensorflow 下载

操作在ubuntu14 下完成。1. sudo apt-get install python-pip该操作是无痛的.2. sudo pip install --upgrade pip --default-timeout=100关于--default-timeout=100, 如果不加,可能安装不成功,下载超时断线。3. sudo -H pip install   -i https:...
原创
193阅读
0评论
0点赞
发布博客于 3 年前

python 自学入门:帮助系统

python 自学入门:帮助系统============================================================1. python 中使用的保留字是什么?============================================================每种语言都会有保留字的.如下来学习.a. 准备环境$sudo apt-ge...
原创
718阅读
0评论
0点赞
发布博客于 3 年前

shell 变量非空值,空值和不存在的辨别

============================================================Author: hjjdebugDate: 2018年 08月 24日 星期五 20:27:01 CST============================================================这里以ubuntu14 bash 为例,...
原创
13172阅读
5评论
1点赞
发布博客于 3 年前

awk {}使用

awk {}使用例子:$ echo "a-b-c" | awk '{gsub(/-/,"_",$0)}'竟然什么都没有输出,而echo "a-b-c" | awk 'gsub(/-/,"_",$0)'可以输出正确的结果,a_b_c用大括号怎样才能输出期望的结果呢?echo "a-b-c" | awk '{gsub(/-/,"_",$0);print $0}'a_b_c于
原创
1053阅读
0评论
0点赞
发布博客于 3 年前

以Ip地址作为命令提示符。

以Ip地址作为命令提示符。在登录多台主机时会有用。修改环境变量PS1 即可。该变量一般在/etc/profile 中设置, 也可在.bashrc中配置#       export PS1="[\u@\h \W]\\$ "        export PS1="[\u@`ifconfig eth0 | sed -nr 's/.*inet addr:(([0-9]+\.){3}[0-9...
原创
312阅读
0评论
0点赞
发布博客于 3 年前

ubuntu14下添加mtpaint 右手菜单

 想把mtpaint 加到nautilus 右手菜单,查了一下资料, 发现创建一个脚本就可以, 如下:#!/bin/bashexec mtpaint $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS把这个脚本添加可执行权限,放到~/.local/share/nautilus/scripts 目录下即可。我的环境是ubuntu14.04另附上我的该目录下其它...
原创
172阅读
0评论
0点赞
发布博客于 3 年前

从ISO 文件制作U盘启动盘.

从ISO 文件制作U盘启动盘.ISO 光盘映像文件是可启动的, 想制作成可启动的U盘文件.在windows 下, 推荐2个工具, 在linux 下, 推荐1个工具批评一下广为谬传的用dd 从ISO光盘映像创建可启动U盘的做法windows 下简单的专业ISO到U盘映像安装工具1. Usb installer对话框界面, 选择3个选项, 然后点击创建Universal USB Installer –...
原创
21149阅读
0评论
3点赞
发布博客于 3 年前

lfs 6.3实验笔记

在经历了百般磨难之后,终于厚积薄发,用极短的时间,编译完成了lfs, 有些内容还需要进一步理解,采用环境是emacs ansi-term做远程登陆客户端, 如下作为学习笔记************************************************************lfs 有一个livecd, cd 盘里有了必要的素材。参考文档:1. 官网,http://www....
原创
414阅读
0评论
0点赞
发布博客于 3 年前

Emacs 重新开始,从心开始

Emacs 重新开始,从心开始重装系统之后,也重装了emacs,采用了GNU Emacs 25.3.1,重新整理了.emacs配置只保留最基本的功能.达到简化的目的,我认为以下功能是必需的,记录与此.1. emacs 默认白底黑字, 通过菜单改为黑底白字. 保存后会在.emacs生成对应客户化配置.2. emacs 默认启动About Gnu Emacs 窗口, 禁用之:3. 用list...
原创
684阅读
0评论
0点赞
发布博客于 3 年前

shell 编程 帮助功能的实现

一个程序,往往需要帮助说明.激活帮助说明的方法介绍两种1. 最简单的办法是通过参数个数判别.例如不带任何参数就显示帮助说明.2. 正规做法是命令行后跟 -h 参数.shell 帮助的写法可以用一堆echo 指令向控制台输出, 更好的做法是用here doc 语法, 说明文档排版整齐,跟输出一致. 没有一堆echo 及 双引号等.下面给出实例:1. 简单方法#!/bin/bash -...
原创
3968阅读
0评论
0点赞
发布博客于 3 年前