自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 linux C/C++常用开发工具汇总

序号 工具类型 工具名称 网址 操作系统 收费 1 虚拟机 Oracle VM VirtualBox https://www.virtualbox.org/wiki/Downloads Windows 否     VM...

2018-10-30 10:15:20

阅读数 1036

评论数 1

原创 Debian系统源码安装usb网卡驱动

系统为debian 9.6 64位版本,安装网卡驱动为asix的AX88772B芯片 1. 安装系统build模块 apt-get install linux-image-$(uname -r) linux-headers-$(uname -r) 2. 官网下载usb网卡驱动源码 3. 解...

2019-04-22 15:12:58

阅读数 453

评论数 0

原创 linux下源码安装goahead Web Server

环境:Debian8.11 amd64 goahead:4.1.0源码 1. 从官网下载源代码 2. 解压源代码到当前目录:tar xvf goahead-4.1.0-src.tgz 3. 复制头文件: cp projects/goahead-linux-default-me.h src/m...

2019-03-25 11:09:04

阅读数 316

评论数 0

原创 Linux操作系统添加自定义应用程序开机启动

环境:debian8.11.1 64位 方法1: 应用程序:自己编写的C程序 在/etc/init.d目录下增加启动脚本。此处以servmon文件为例,文件内容如下: #!/bin/sh ### BEGIN INIT INFO # Provides: servermon # Req...

2019-03-13 10:50:21

阅读数 442

评论数 0

原创 WINDOWS10编译openssl

操作系统:windows10 64位 编译环境:VS2017 1. 安装perl,在官网下载安装包后安装 http://www.activestate.com/activeperl/downloads 2. 下载openssl源代码,在官网根据自己情况下载openssl源代码(我下载的为1...

2019-03-08 15:19:46

阅读数 197

评论数 0

原创 Debian安装图形界面

环境:Debian9.6 64位 0. 确保Debian能够联网 1.apt install x-window-system-core gnome-core #安装最基本的gnome图形相关软件 2. init 6 #设置系统为图形界面启动,该命令执行后系统会重启 3. 设置系统可以roo...

2019-03-07 09:47:30

阅读数 7317

评论数 1

原创 Debian安装telnet服务

环境:Debian9.6 64位版本 1. apt install xinetd telnetd telnet #安装xinet服务,telnet服务,telnet客户端 2. 创建文件/etc/xinetd.d/telnet,文件内容如下: service telnet { di...

2019-03-06 14:43:23

阅读数 1469

评论数 0

原创 Vbox6.04 Debian虚拟机安装增强工具

环境:VBox6.04 Debian9.6 64位 在创建Vbox虚拟机后安装好Debian系统。开始操作前请确保虚拟机可以上网 1. root用户登录Debian; 2. uname -r #查看debian内核版本 3. apt install linux-headers-第2步的版本...

2019-03-06 14:29:23

阅读数 495

评论数 0

原创 Thinkpad MORFFHL滑鼠接收器配对

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

2019-01-15 11:04:44

阅读数 3570

评论数 3

原创 VS2017设置chrome浏览器google搜索当前选定文本

注意:环境VS2017社区版,浏览器google chrome浏览器 1. 打开VS2017,界面如下,点击工具菜单 2. 点击菜单中的外部工具,如下图 3. 弹出如下窗口,点击右上角添加按钮,如下图 4. 标题自己根据喜好,起个名字,我起的名字为chrome。命令填入goog...

2018-11-03 09:53:06

阅读数 347

评论数 0

转载 man timer_create

TIMER_CREATE(2)            Linux Programmer's Manual           TIMER_CREATE(2) NAME        timer_create - create a POSIX per-process timer SYNOP...

2018-10-24 09:48:22

阅读数 73

评论数 0

转载 C++中explicit的用法

C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生,声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色: 1 是个构造; 2 是个默认且隐含的...

2018-09-25 16:02:36

阅读数 34

评论数 0

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

在很多系统软件的开发中,需要使用一些系统的唯一性信息。所以,得到主机的CPUID、硬盘序列号及网卡的MAC地址,就成个一件很重要的应用。 需要的准备知识有: 1. GCC的嵌入汇编,具体的GCC嵌入汇编知识,请参考相关手册 2.ioctl系统调用,具体的调用方法,请查看手册页 获取CPUI...

2018-09-14 17:03:19

阅读数 4428

评论数 0

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

1,系统变量errno 在linux系统编程中错误通常通过函数返回值来表示,并通过特殊变量errno来描述。 errno这个全局变量在<errno.h>头文件中声明如下:extern int errno; errno是一个由POSIX和ISO C标准定义的符号,看...

2018-09-08 09:51:40

阅读数 37

评论数 0

转载 TCP系统参数设置

我们这里应用的是CentOS5.3,并内核使用的是2.6.18-128.el5PAE #1 SMP 。修改部分TCP ,有的是为了提高性能与负载,但是存在降低稳定性的风险。有的则是安全方面的配置,则有可能牺牲了性能。 1.TCP keepalive TCP连接保鲜设置 echo 1800 &...

2018-09-04 08:23:27

阅读数 185

评论数 0

原创 ubuntu16.04下安装eclipse

背景:操作系统ubuntu16.04 64bits,编程语言C/C++,安装eclipse为了进行openssl等工程级代码的调试1. 安装JVM1.1 下载JAVA安装包从JAVA官网下载JAVA64位最新版本安装包jre-8u161-linux-x64.tar.gz,下载地址如下:http:/...

2018-03-17 09:51:03

阅读数 578

评论数 0

原创 openssl中OID标识的增加

背景:由于最近在国家密码管理局的GM/T系列标准,需要在openssl中基于PKCS7的格式实现GM/T0010标准的数字信封数据格式,需要在openssl中增加GM/T0010标准的各个消息的OID标识符。方法1:1. 把OID标识符转换为ASN1编码    使用openssl中的asn1par...

2018-03-08 11:22:20

阅读数 1284

评论数 0

原创 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/...

2018-01-19 16:40:45

阅读数 335

评论数 0

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

今年在ubuntu下用C++编程语言,基于POCO开源库做了个项目,开发调试过程中碰到了不少坑,这里记录一下。如下是几个注意事项:        1.  在包含头文件时,需要注意头文件的顺序,应该从上到下依次是:系统调用的头文件,第三方库的头文件,自定义的头文件;             注意:如...

2017-12-21 08:15:30

阅读数 232

评论数 0

原创 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-cr...

2017-12-05 16:16:52

阅读数 1340

评论数 0

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

运行环境:ubuntu16.04 x64版本,codeblocks 16.01,gcc为ubuntu下最新版本         最近在用codeblocks调试程序时,发现codeblocks的单行或单指令调试时,程序需要运行好一会才能执行到下一行或下一条指令,问百度问了无果,只能自己研究一下了...

2017-09-06 17:08:04

阅读数 932

评论数 5

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

由于近期在项目中遇到socket通信,和服务器端建立了TCP连接,但是要向服务器发送的数据却没发上去,分析没发出去的原因可能是:应用程序进程把文件描述符0关闭了,然后socket获取到了0作为socket通信的文件描述符,然后建立TCP成功,但是由于0是系统的标准输入文件描述符,导致发送数据异常。...

2017-08-07 09:46:50

阅读数 5666

评论数 0

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

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

2017-08-07 09:08:51

阅读数 3105

评论数 0

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

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

2017-06-29 10:41:02

阅读数 6963

评论数 0

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

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

2017-06-27 16:23:44

阅读数 2881

评论数 0

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

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

2017-06-27 16:08:03

阅读数 15250

评论数 0

原创 libusb移植到ARM linux

环境:ubuntu16.04 x64版本, arm-linux-gcc (Sourcery G++ Lite 2010.09-50) 4.5.1 1. 下载源码 https://sourceforge.net/projects/libusb/ 2. 解压源码 tar -xvf  libusb-...

2017-05-16 13:48:13

阅读数 1200

评论数 0

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

2017-04-27 18:16:49

阅读数 1828

评论数 0

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

在C/C++编译器中,会有编译器级别的预定义宏,__FILE__,__LINE__,__FUNCTION__,__DATE__,__TIME__等。        下面来一一介绍这几个宏的含义:        __FILE__ 当前文件的文件名,linux下GCC只有文件名,而在windows下G...

2017-04-27 14:09:29

阅读数 876

评论数 0

转载 C++向量vector 的使用

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

2017-04-27 09:39:57

阅读数 424

评论数 0

原创 codeblocks调试功能异常问题

最近在使用codeblocks过程中,在线调试遇到些不能调试的问题,现在此处记录一下,主要有如下几种情况: 1. 工程目录不能有中文和空格,更换工程到没有中文和空格的目录(例如:某个盘符的根目录)即可; 2. 调试模式时,编译选项需要带-g,如果没有增加即可调试; 3. 工程中需要打开一个c...

2017-04-26 16:55:05

阅读数 1618

评论数 1

转载 C\C++调试技巧

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

2017-04-26 09:37:24

阅读数 236

评论数 0

原创 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,所以没有交叉编译安装,需要...

2017-04-11 10:36:21

阅读数 1811

评论数 0

原创 ubuntu16.04源码编译安装Poco1.7.8

环境:ubuntu16.04 x64, GCC 5.4.0 20160609 首先,做编译前准备,编译安装OPENSSL等包,为编译Poco准备依赖包。 1. OPENSSL的编译安装(以1.0.0e为准)         源码下载地址:https://www.openssl.org/sou...

2017-04-11 10:15:15

阅读数 1141

评论数 0

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

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

2017-03-29 17:31:30

阅读数 2286

评论数 0

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

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

2017-03-28 09:58:10

阅读数 328

评论数 0

转载 ubuntu16 安装RPM软件包

RPM软件包 英文原义:Redhat Package Manager 中文释义:红帽RPM软件包管理器 RPM是RedHat专用的软件包。 对于RPM软件包,ubuntu需要先将其转换为deb包,然后安装。 具体步骤如下: 1,安装alien转换软件 ap...

2017-03-14 17:52:18

阅读数 5316

评论数 0

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

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

2017-03-09 14:07:20

阅读数 3981

评论数 0

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

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

2017-03-02 16:18:15

阅读数 1473

评论数 0

转载 linux下动态链接库的显式调用和隐式调用

转自:http://blog.csdn.net/lc_910927/article/details/42393121 一、显式调用和隐式调用的区别         动态库相比静态库的区别是:静态库是编译时就加载到可执行文件中的,而动态库是在程序运行时完成加载的,所以使用动态...

2016-11-04 15:53:40

阅读数 548

评论数 0

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