- 博客(65)
- 资源 (1)
- 收藏
- 关注

原创 linux C/C++常用开发工具汇总
序号 工具类型 工具名称 网址 操作系统 收费 1 虚拟机 Oracle VM VirtualBox https://www.virtualbox.org/wiki/Downloads Windows 否 VMvare https://www.vmware.com/ Windows 是 2...
2018-10-30 10:15:20
6335
1
原创 删除keil中的搜索记录及最近打开文件
按照顺序打开 计算机\HKEY_CURRENT_USER\SOFTWARE\Keil\礦ision5,根据自己使用的版本选择目录。然后\Recent File List是最近打开文件注册表,删除该目录下除默认外的所有项目,即可删除最近打开文件列表;类似操作,\Recent Projects,删除该目录下除默认外的所有项目即可删除最近打开的工程。\Settings\Find,删除该目录下除默认外的所有项目即可删除最近的搜索关键字列表。2.CTRL+R,输入regedit,打开注册表编辑器。
2023-08-31 15:55:40
1261
原创 STM32CubeMX生成STM32L073RZT6 BootLoader程序
1. 环境:Windows10, STM32CubeMX6.0.0,Keil5.25单片机为STM32LRZT6 196KBytes Flash,20KBytes RAM2. 功能要求设计BootLoader功能,按键按下上电,进入升级程序状态,不按按键,引导应用程序执行。3. STM32CubeMX配置并生成代码1)打开STM32CubeMX,通过选择单片机创建工程,在Part Number中输入L073RZ搜索单片机,在单片机列表中双击STM32L073RZTx进入配置界面。
2020-12-18 13:54:55
2442
1
原创 CentOS7.2 安装GitLab服务器
01. yum install -y curl policycoreutils-python openssh-server02. systemctl enable sshd03. systemctl start sshd04. wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.4.2-ce.0.el7.x86_64.rpm05. rpm -i gitlab-ce-13.4.2-ce.0.el7.x86_6
2020-10-20 16:48:07
223
原创 Debian系统源码安装usb网卡驱动
系统为debian 9.6 64位版本,安装网卡驱动为asix的AX88772B芯片1. 安装系统build模块apt-get install linux-image-$(uname -r) linux-headers-$(uname -r)2. 官网下载usb网卡驱动源码3. 解压源代码并编译安装make && make install &&...
2019-04-22 15:12:58
2621
原创 linux下源码安装goahead Web Server
环境:Debian8.11 amd64goahead:4.1.0源码1. 从官网下载源代码2. 解压源代码到当前目录:tar xvf goahead-4.1.0-src.tgz3. 复制头文件: cp projects/goahead-linux-default-me.h src/me.h4. 配置选项:./configure5. 编译并安装:make && ...
2019-03-25 11:09:04
1192
原创 Linux操作系统添加自定义应用程序开机启动
环境:debian8.11.1 64位方法1:应用程序:自己编写的C程序在/etc/init.d目录下增加启动脚本。此处以servmon文件为例,文件内容如下:#!/bin/sh### BEGIN INIT INFO# Provides: servermon# Required-Start: $local_fs $remote_fs $network $sysl...
2019-03-13 10:50:21
1502
原创 WINDOWS10编译openssl
操作系统:windows10 64位编译环境:VS20171. 安装perl,在官网下载安装包后安装http://www.activestate.com/activeperl/downloads2. 下载openssl源代码,在官网根据自己情况下载openssl源代码(我下载的为1.0.2r)https://www.openssl.org/source/3. 解压源代码,这...
2019-03-08 15:19:46
777
原创 Debian安装图形界面
环境:Debian9.6 64位0. 确保Debian能够联网1.apt install x-window-system-core gnome-core #安装最基本的gnome图形相关软件2. init 6 #设置系统为图形界面启动,该命令执行后系统会重启3. 设置系统可以root登录 1)修改/etc/gdm3/daemon.conf文件,在[security...
2019-03-07 09:47:30
31993
2
原创 Debian安装telnet服务
环境:Debian9.6 64位版本1. apt install xinetd telnetd telnet #安装xinet服务,telnet服务,telnet客户端2. 创建文件/etc/xinetd.d/telnet,文件内容如下:service telnet{ disable = no flags = REUSE socket...
2019-03-06 14:43:23
12034
原创 Vbox6.04 Debian虚拟机安装增强工具
环境:VBox6.04 Debian9.6 64位在创建Vbox虚拟机后安装好Debian系统。开始操作前请确保虚拟机可以上网1. root用户登录Debian;2. uname -r #查看debian内核版本3. apt install linux-headers-第2步的版本号 #安装内核头文件4. apt install build-essential ...
2019-03-06 14:29:23
1293
原创 Thinkpad MORFFHL滑鼠接收器配对
1. 接收器插入电脑2. 关闭鼠标3. 同时按住鼠标左键、右键、滚轮打开电源开关,3个键按住3秒左右松手4. 同时按下3个按键,指示灯橘色闪烁5. 再次同时按下3个按键,配对结束6. 关闭鼠标重新打开。移动鼠标查看光标是否移动,并按键确认鼠标是否可用,如配对失败重复以上步骤注意:尽量保持鼠标和接收器的具体不超过20厘米...
2019-01-15 11:04:44
22109
16
原创 VS2017设置chrome浏览器google搜索当前选定文本
注意:环境VS2017社区版,浏览器google chrome浏览器1. 打开VS2017,界面如下,点击工具菜单2. 点击菜单中的外部工具,如下图3. 弹出如下窗口,点击右上角添加按钮,如下图4. 标题自己根据喜好,起个名字,我起的名字为chrome。命令填入google浏览器可执行程序的完整路径,如“C:\Program Files (x86)\Google\Chr...
2018-11-03 09:53:06
1181
转载 man timer_create
TIMER_CREATE(2) Linux Programmer's Manual TIMER_CREATE(2)NAME timer_create - create a POSIX per-process timerSYNOPSIS #include <signal.h> #include <...
2018-10-24 09:48:22
330
转载 C++中explicit的用法
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色:1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型...
2018-09-25 16:02:36
171
转载 Linux下获取CPUID、硬盘序列号
在很多系统软件的开发中,需要使用一些系统的唯一性信息。所以,得到主机的CPUID、硬盘序列号及网卡的MAC地址,就成个一件很重要的应用。需要的准备知识有:1. GCC的嵌入汇编,具体的GCC嵌入汇编知识,请参考相关手册2.ioctl系统调用,具体的调用方法,请查看手册页获取CPUID按照网上提供的说明,CPUID并不是所有的Intel CPU都支持的。如果支持,汇编调用为:ea...
2018-09-14 17:03:19
15924
2
转载 linux系统编程之错误处理:perror,strerror和errno
1,系统变量errno在linux系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在<errno.h>头文件中声明如下:extern int errno;errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改...
2018-09-08 09:51:40
213
转载 TCP系统参数设置
我们这里应用的是CentOS5.3,并内核使用的是2.6.18-128.el5PAE #1 SMP 。修改部分TCP ,有的是为了提高性能与负载,但是存在降低稳定性的风险。有的则是安全方面的配置,则有可能牺牲了性能。1.TCP keepalive TCP连接保鲜设置echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_timeecho 15 &...
2018-09-04 08:23:27
754
原创 ubuntu16.04下安装eclipse
背景:操作系统ubuntu16.04 64bits,编程语言C/C++,安装eclipse为了进行openssl等工程级代码的调试1. 安装JVM1.1 下载JAVA安装包从JAVA官网下载JAVA64位最新版本安装包jre-8u161-linux-x64.tar.gz,下载地址如下:http://sdlc-esd.oracle.com/ESD6/JSCDL/jdk/8u161-b12/2f38c...
2018-03-17 09:51:03
1162
原创 openssl中OID标识的增加
背景:由于最近在国家密码管理局的GM/T系列标准,需要在openssl中基于PKCS7的格式实现GM/T0010标准的数字信封数据格式,需要在openssl中增加GM/T0010标准的各个消息的OID标识符。方法1:1. 把OID标识符转换为ASN1编码 使用openssl中的asn1parse命令进行OID标识符转换为ASN1编码,命令示例如下: openssl asn1parse ...
2018-03-08 11:22:20
4402
原创 gcc搜索目录信息查看
环境:ubuntu16.04 64bits gcc 5.4.01. 查看gcc可执行文件,库文件的搜索gcc -print-search-dirs命令执行情况如下:# gcc -print-search-dirs install: /usr/lib/gcc/x86_64-linux-gnu/5/programs: =/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/l
2018-01-19 16:40:45
1623
原创 关于linux下C++开发的几个注意事项
今年在ubuntu下用C++编程语言,基于POCO开源库做了个项目,开发调试过程中碰到了不少坑,这里记录一下。如下是几个注意事项: 1. 在包含头文件时,需要注意头文件的顺序,应该从上到下依次是:系统调用的头文件,第三方库的头文件,自定义的头文件; 注意:如不按此顺序,在程序语法都正常的情况,程序编译没问题,但是运行时就会出现,段出错,内存分配或访问错误
2017-12-21 08:15:30
599
原创 ubuntu 16.04 64bits 交叉编译openssl到arm-linux
操作系统为ubuntu16.04 64位版本, openssl为1.1.0d版本。执行如下命令:CROSS_COMPILE=arm-linux- /usr/bin/perl ./Configure no-asm shared linux-armv4 --prefix=/opt/arm-cross-tools/openssl/make && make install注意:
2017-12-05 16:16:52
2105
原创 ubuntu下codeblocks单步调试突然变的很慢
运行环境:ubuntu16.04 x64版本,codeblocks 16.01,gcc为ubuntu下最新版本 最近在用codeblocks调试程序时,发现codeblocks的单行或单指令调试时,程序需要运行好一会才能执行到下一行或下一条指令,问百度问了无果,只能自己研究一下了。 由于调试的程序无法正常执行,所有想使用调试功能看一下怎么回事,程序执行到某行的时
2017-09-06 17:08:04
1575
原创 linux下查看进程使用文件描述符的详细信息
由于近期在项目中遇到socket通信,和服务器端建立了TCP连接,但是要向服务器发送的数据却没发上去,分析没发出去的原因可能是:应用程序进程把文件描述符0关闭了,然后socket获取到了0作为socket通信的文件描述符,然后建立TCP成功,但是由于0是系统的标准输入文件描述符,导致发送数据异常。 上述的原因只是推测,并没有确切的证据,正好今天早上发现现场的设备出现不上去报文的情况
2017-08-07 09:46:50
9807
原创 linux下查看到某个IP的寻址路由信息
当网络故障时或在分析某些问题时,需要查看linux设备到某个IP的路由信息。使用traceroute命令即可查看。具体命令如下:traceroute xxx.xxx.xxx.xxx
2017-08-07 09:08:51
12842
原创 linux下获取记录文件的前N行或后N行
这几天在做ARM linux嵌入式设备的应用程序,要记录设备的启动记录,但是又怕长时间运行,记录文件太大,导致写爆存储,故想之保留记录文件的最后N行来保证存储不会被写爆。 故开始问度娘要解决方案,网上提供了head和tail两个命令。 1. head命令 head命令用于显示文件文字区块,可以显示文件的前N行,例如:head -10 test.txt
2017-06-29 10:41:02
11675
原创 linux下导致内存使用量增长的shell命令及手动释放内存的方法
最近在客户现场发现arm linux嵌入式设备在运行一段时间后,设备物理内存使用量接近100%,分析发现和脚本程序中长时间循环使用几个shell命令有关。 1. cp 复制命令,使用cp命令,会使得linux的物理内存使用量和缓存使用量增加,可在top命令中查看内存使用情况。 2. mv 移动或重命名文件命令,和cp类似,使用mv命
2017-06-27 16:23:44
5544
原创 linux下查看系统内存使用情况的几个命令
最近在客户现场运行的arm linux设备出现了死机情况,由于接触linux嵌入式设备时间不长,遇到该问题后觉得束手无措。后领导提示说查看其他没有死机设备的系统资源使用情况,下面介绍下我用到的那些命令: 1. top top命令可实时查看系统的内存使用情况,有多少物理内存已经使用了,多少物理内存空闲,多少缓存,CPU的使用情况,每个进程的进程号是多少,占用的虚拟内存
2017-06-27 16:08:03
20007
原创 libusb移植到ARM linux
环境:ubuntu16.04 x64版本, arm-linux-gcc (Sourcery G++ Lite 2010.09-50) 4.5.11. 下载源码 https://sourceforge.net/projects/libusb/2. 解压源码 tar -xvf libusb-1.0.20.tar.bz23. 进入解压后的文件目录,编译器配置 ./configur
2017-05-16 13:48:13
1851
原创 ARM开发板挂载Ubuntu主机的NFS共享文件夹
ubuntu主机环境 ubuntu16.04 x64 IP 192.168.1.225,arm开发板 ARM9,linux 2.6.37,busybox文件系统,IP 192.168.1.222.1. 在ubuntu下安装NFS服务apt-get install nfs-common nfs-kernel-server2. 创建共享目录mkdir /nfs 此处目录可
2017-04-27 18:16:49
3118
原创 C/C++编译器预定宏使用
在C/C++编译器中,会有编译器级别的预定义宏,__FILE__,__LINE__,__FUNCTION__,__DATE__,__TIME__等。 下面来一一介绍这几个宏的含义: __FILE__ 当前文件的文件名,linux下GCC只有文件名,而在windows下GCC会包含完整的路径,可通过编译选项设置为只有文件名; __LINE__代码当
2017-04-27 14:09:29
1337
转载 C++向量vector 的使用
一. 向量的介绍 向量vector是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector同属STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。 在使用它时, 需要包含头文件 vector. 容器与数组相比
2017-04-27 09:39:57
832
原创 codeblocks调试功能异常问题
最近在使用codeblocks过程中,在线调试遇到些不能调试的问题,现在此处记录一下,主要有如下几种情况:1. 工程目录不能有中文和空格,更换工程到没有中文和空格的目录(例如:某个盘符的根目录)即可;2. 调试模式时,编译选项需要带-g,如果没有增加即可调试;3. 工程中需要打开一个c或cpp文件,并在设置断点,否则程序会像正常运行一下,直接结束了;4. 打开的代码需要全部展开,不
2017-04-26 16:55:05
2105
1
转载 C\C++调试技巧
在调试代码时,有时会遇到报错的的函数是没问题,而是调用它的函数传入的参数是异常的,而又没法通过代码准确定位到具体调用的位置的情况,特别是对一些基础函数,往往会出现这种情况,因为工程中调用它们的地方太多,而且有时会漏掉返回值检测。这里给出一个快速找出调用者是谁的方法。//filename: tt.h#include int foo(int p);#define foo(_a) \
2017-04-26 09:37:24
383
原创 ubuntu16.04交叉编译Poco1.7.8 for arm
环境:ubuntu16.04 x64, arm-linux-gcc (Sourcery G++ Lite 2010.09-50) 4.5.1首先,做编译前准备,编译安装OPENSSL,STLport等包,为编译Poco准备依赖包(由于我不使用MySQL和ODBC,所以没有交叉编译安装,需要的可以自行交叉编译安装)。1. OPENSSL的交叉编译安装(以1.0.0e为准)源码下
2017-04-11 10:36:21
2621
原创 ubuntu16.04源码编译安装Poco1.7.8
环境:ubuntu16.04 x64, GCC 5.4.0 20160609首先,做编译前准备,编译安装OPENSSL等包,为编译Poco准备依赖包。1. OPENSSL的编译安装(以1.0.0e为准) 源码下载地址:https://www.openssl.org/source/openssl-1.0.0e.tar.gz 下载后按如下指令进行编译安装:
2017-04-11 10:15:15
1448
原创 Linux下二进制方式读写文件
最近在做项目需要把内存数据写入到文件中,然后再从文件中以二进制方式读出使用。由于接触Linux开发时间不长,开始询问度娘,度娘的回答是使用以wb方式打开文件后使用fwrite把数据写入文件,以rb方式打开文件后使用fread读出数据。下面详细介绍一下相关的函数极其使用说明。需要用的头文件为stdio.h,函数结构为fwrite、fread、fseek、ftell。1. fwrite
2017-03-29 17:31:30
5432
原创 ARM-linux下的代码覆盖率报告生成
最近做arm-linux 下的项目,需要生成代码单元测试。百度查到的基本都是x86架构下的生成方式,使用gcc的-g -Wall --coverage选项,并使用lcov,genhtml配合生成html格式的代码测试覆盖率报告,但是我在把代码用交叉编译工具编译后,放到ARM-linux下运行后,出现一些问题。下面简单介绍一下。 1. 我在把可执行文件下载到ARM-linux上执行程
2017-03-28 09:58:10
1000
转载 ubuntu16 安装RPM软件包
RPM软件包英文原义:Redhat Package Manager中文释义:红帽RPM软件包管理器RPM是RedHat专用的软件包。对于RPM软件包,ubuntu需要先将其转换为deb包,然后安装。具体步骤如下:1,安装alien转换软件apt-get install alien2,将RPM包转换为deb安装包sudo ali
2017-03-14 17:52:18
8239
谷歌开源项目pigweed代码
2020-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人