自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (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 2677 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 6

原创 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 1111

原创 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 610

原创 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 963

原创 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 505

原创 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 19966 1

原创 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 4487

原创 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 794

原创 Thinkpad MORFFHL滑鼠接收器配对

1. 接收器插入电脑2. 关闭鼠标3. 同时按住鼠标左键、右键、滚轮打开电源开关,3个键按住3秒左右松手4. 同时按下3个按键,指示灯橘色闪烁5. 再次同时按下3个按键,配对结束6. 关闭鼠标重新打开。移动鼠标查看光标是否移动,并按键确认鼠标是否可用,如配对失败重复以上步骤注意:尽量保持鼠标和接收器的具体不超过20厘米...

2019-01-15 11:04:44 9806 8

原创 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 700

转载 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 &lt...

2018-10-24 09:48:22 125

转载 C++中explicit的用法

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色:1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型...

2018-09-25 16:02:36 59

转载 Linux下获取CPUID、硬盘序列号

在很多系统软件的开发中,需要使用一些系统的唯一性信息。所以,得到主机的CPUID、硬盘序列号及网卡的MAC地址,就成个一件很重要的应用。需要的准备知识有:1. GCC的嵌入汇编,具体的GCC嵌入汇编知识,请参考相关手册2.ioctl系统调用,具体的调用方法,请查看手册页获取CPUID按照网上提供的说明,CPUID并不是所有的Intel CPU都支持的。如果支持,汇编调用为:ea...

2018-09-14 17:03:19 9467

转载 linux系统编程之错误处理:perror,strerror和errno

1,系统变量errno在linux系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。errno这个全局变量在<errno.h>头文件中声明如下:extern int errno;errno是一个由POSIX和ISO C标准定义的符号,看(用)起来就好像是一个整形变量。当系统调用或库函数发生错误的时候,比如以只读方式打开一个不存在的文件时,它的值将会被改...

2018-09-08 09:51:40 74

转载 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 350

原创 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 996

原创 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 2128

原创 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 1008

原创 关于linux下C++开发的几个注意事项

今年在ubuntu下用C++编程语言,基于POCO开源库做了个项目,开发调试过程中碰到了不少坑,这里记录一下。如下是几个注意事项:       1.  在包含头文件时,需要注意头文件的顺序,应该从上到下依次是:系统调用的头文件,第三方库的头文件,自定义的头文件;            注意:如不按此顺序,在程序语法都正常的情况,程序编译没问题,但是运行时就会出现,段出错,内存分配或访问错误

2017-12-21 08:15:30 336

原创 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 1768

原创 ubuntu下codeblocks单步调试突然变的很慢

运行环境:ubuntu16.04 x64版本,codeblocks 16.01,gcc为ubuntu下最新版本        最近在用codeblocks调试程序时,发现codeblocks的单行或单指令调试时,程序需要运行好一会才能执行到下一行或下一条指令,问百度问了无果,只能自己研究一下了。        由于调试的程序无法正常执行,所有想使用调试功能看一下怎么回事,程序执行到某行的时

2017-09-06 17:08:04 1175 5

原创 linux下查看进程使用文件描述符的详细信息

由于近期在项目中遇到socket通信,和服务器端建立了TCP连接,但是要向服务器发送的数据却没发上去,分析没发出去的原因可能是:应用程序进程把文件描述符0关闭了,然后socket获取到了0作为socket通信的文件描述符,然后建立TCP成功,但是由于0是系统的标准输入文件描述符,导致发送数据异常。       上述的原因只是推测,并没有确切的证据,正好今天早上发现现场的设备出现不上去报文的情况

2017-08-07 09:46:50 7949

原创 linux下查看到某个IP的寻址路由信息

当网络故障时或在分析某些问题时,需要查看linux设备到某个IP的路由信息。使用traceroute命令即可查看。具体命令如下:traceroute xxx.xxx.xxx.xxx

2017-08-07 09:08:51 5333

原创 linux下获取记录文件的前N行或后N行

这几天在做ARM linux嵌入式设备的应用程序,要记录设备的启动记录,但是又怕长时间运行,记录文件太大,导致写爆存储,故想之保留记录文件的最后N行来保证存储不会被写爆。       故开始问度娘要解决方案,网上提供了head和tail两个命令。      1. head命令       head命令用于显示文件文字区块,可以显示文件的前N行,例如:head -10 test.txt

2017-06-29 10:41:02 9356

原创 linux下导致内存使用量增长的shell命令及手动释放内存的方法

最近在客户现场发现arm linux嵌入式设备在运行一段时间后,设备物理内存使用量接近100%,分析发现和脚本程序中长时间循环使用几个shell命令有关。       1. cp        复制命令,使用cp命令,会使得linux的物理内存使用量和缓存使用量增加,可在top命令中查看内存使用情况。       2. mv       移动或重命名文件命令,和cp类似,使用mv命

2017-06-27 16:23:44 4018

原创 linux下查看系统内存使用情况的几个命令

最近在客户现场运行的arm linux设备出现了死机情况,由于接触linux嵌入式设备时间不长,遇到该问题后觉得束手无措。后领导提示说查看其他没有死机设备的系统资源使用情况,下面介绍下我用到的那些命令:       1. top       top命令可实时查看系统的内存使用情况,有多少物理内存已经使用了,多少物理内存空闲,多少缓存,CPU的使用情况,每个进程的进程号是多少,占用的虚拟内存

2017-06-27 16:08:03 17333

原创 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 1366

原创 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 2335

原创 C/C++编译器预定宏使用

在C/C++编译器中,会有编译器级别的预定义宏,__FILE__,__LINE__,__FUNCTION__,__DATE__,__TIME__等。       下面来一一介绍这几个宏的含义:       __FILE__ 当前文件的文件名,linux下GCC只有文件名,而在windows下GCC会包含完整的路径,可通过编译选项设置为只有文件名;       __LINE__代码当

2017-04-27 14:09:29 1026

转载 C++向量vector 的使用

一. 向量的介绍         向量vector是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector同属STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。         在使用它时, 需要包含头文件 vector.          容器与数组相比

2017-04-27 09:39:57 626

原创 codeblocks调试功能异常问题

最近在使用codeblocks过程中,在线调试遇到些不能调试的问题,现在此处记录一下,主要有如下几种情况:1. 工程目录不能有中文和空格,更换工程到没有中文和空格的目录(例如:某个盘符的根目录)即可;2. 调试模式时,编译选项需要带-g,如果没有增加即可调试;3. 工程中需要打开一个c或cpp文件,并在设置断点,否则程序会像正常运行一下,直接结束了;4. 打开的代码需要全部展开,不

2017-04-26 16:55:05 1807 1

转载 C\C++调试技巧

在调试代码时,有时会遇到报错的的函数是没问题,而是调用它的函数传入的参数是异常的,而又没法通过代码准确定位到具体调用的位置的情况,特别是对一些基础函数,往往会出现这种情况,因为工程中调用它们的地方太多,而且有时会漏掉返回值检测。这里给出一个快速找出调用者是谁的方法。//filename: tt.h#include int foo(int p);#define foo(_a) \

2017-04-26 09:37:24 289

原创 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 2215

原创 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 1218

原创 Linux下二进制方式读写文件

最近在做项目需要把内存数据写入到文件中,然后再从文件中以二进制方式读出使用。由于接触Linux开发时间不长,开始询问度娘,度娘的回答是使用以wb方式打开文件后使用fwrite把数据写入文件,以rb方式打开文件后使用fread读出数据。下面详细介绍一下相关的函数极其使用说明。需要用的头文件为stdio.h,函数结构为fwrite、fread、fseek、ftell。1. fwrite

2017-03-29 17:31:30 3656

原创 ARM-linux下的代码覆盖率报告生成

最近做arm-linux 下的项目,需要生成代码单元测试。百度查到的基本都是x86架构下的生成方式,使用gcc的-g -Wall --coverage选项,并使用lcov,genhtml配合生成html格式的代码测试覆盖率报告,但是我在把代码用交叉编译工具编译后,放到ARM-linux下运行后,出现一些问题。下面简单介绍一下。       1. 我在把可执行文件下载到ARM-linux上执行程

2017-03-28 09:58:10 586

转载 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 5931

原创 linux下查看可执行文件的相关信息

1. file 可执行文件  可查看可执行文件是ARM架构还是X86架构    2. nm 可执行文件 可查看文件中的符号,包括全局变量,全局函数等    3. ldd 可执行文件 可查看文件执行所需要的动态库    4. strings 可执行文件 可查看文件中所有的符号,包括编译器版本信息    5. readelf 可执行文件 可查看文件的所有详细信息,包括文件的头信息,动态

2017-03-09 14:07:20 5820

转载 使用C++进行对象序列化

1 什么是序列化程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将程序数据转化成能被存储并传输的格式的过程被称为“序列化”(Serialization),而它的逆过程则可被称为“反序列化”(Deserialization)。简单来说,序列化就是将对象实例的状态转换为可保持或传输的格式的过程。与序

2017-03-02 16:18:15 1863

谷歌开源项目pigweed代码

Pigweed是嵌入式目标库的开源集合,也就是我们所称的模块。这些模块是构建块和基础架构,可在无MMU的32位微控制器(如STMicroelectronics STM32L452或Nordic nRF52832)上进行更快,更可靠的开发。

2020-06-04

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除