自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 资源 (3)
  • 收藏
  • 关注

原创 go语言开发之路(1)安装

下载最新的安装包: go1.14.2.linux-amd64.tar.gz# tar -xzvf go1.14.2.linux-amd64.tar.gz得到目录 go# mv go /usr/local/修改 /etc/profile 最后面加上export GOPATH=/mnt/win/goexport GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin值得注意的是:GOPATH 可以..

2020-05-10 23:07:07 326

原创 Linux下C++开发环境搭建,最佳方案

以前,曾经写过用Qt在纯Linux下开发,作为编辑器使用,现在随着vscode逐渐成熟,是时候与时俱进了。截止2020年4月,纯Linux下,写C/C++代码的最佳开发环境就是:vscodevscode方便到什么程度,只需要添加几个插件,就可以完美支持:(1)代码跳转(2)自动补全(3)自动生成代码实现对于任何语言的开发者来说,有以上3点功能的编辑器,就足以了。无...

2020-04-12 21:45:18 4413

原创 C/C++ 尖括号找不到头文件的问题

写代码,编译的问题:fatal error: common/openssl/e_os2.h: No such file or directorycommon是项目公共的头文件目录这个目录内部很多文件,有时候包含目录内的其他头文件,是这样用的#include <common/openssl/e_os2.h>而makefile里面,是这样写的INC = -I ../...

2019-10-27 15:23:25 1361

原创 c++可继承的单例模式

#ifndef _SINGLETON_H#define _SINGLETON_Htemplate&lt;class T&gt;class Singleton{protected: Singleton(){}private: Singleton(const Singleton&amp; s); Singleton&amp; operator = (Singleton&am...

2018-12-11 14:50:59 3038

原创 Shell脚本中的:=是什么意思

Shell脚本中的:=是什么意思前言解读结论前言有时候, 我们使用/阅读 shell 脚本时, 会遇到一种用法 :=例如 newvar=${var:=“hello”}那么, 这个 := 到底是啥意思?解读#!/bin/bashvar=123echo ${var:="999"}unset varecho ${var:="888"}输出结果:123888结论...

2018-12-08 19:31:44 17742 2

原创 c++的函数参数是一个函数的返回值

例如下面的代码:int funx(){ return 99;}int testfunc(int x, int y = funx()){ return x + y;}int main() { int u = testfunc(1); cout &lt;&lt; "u = " &lt;&lt; u &lt;&lt; endl; int x = 0; c...

2018-12-04 22:17:19 597

原创 Win10无法访问Samba共享文件夹【解决方案】

相信不少人,已经被这个问题困住了,解决方案如下:1. 进入“控制面板”,进入“程序和功能“2、选择“启用或关闭Windows功能”3、在功能列表中确保选中“SMB1.0/CIFS文件共享支持”,然后确定安装,重新启动电脑即可生效。 4、然后就可以正常访问NAS里面的共享文件了 通过以上方法,我们就可以让Win10系统重新可以访问Samba共享文件夹...

2018-11-10 21:59:55 74871 8

原创 从面向对象编程转为面向接口编程

大家写过C++或者Java,或者其他语言,基本上都会接触到面向对象这个概念。面向对象,本身是软件编程发展过程中的产物,当然相比于面向过程,是一种突破性的设计。但是,如果只是停留在面向对象编程,而不是继续向前看。那么,无疑是一种固步自封的陷阱。更加先进的编程思想是什么呢?就是面向接口编程。 这里,涉及到一个哲学问题。到底是以类型封装特征,还是以特征成就类型。如果是前者,以类型...

2018-08-19 01:48:07 2461 2

原创 CentOS7 无法启动,enter emergency mode 报错 Failed to mount /sysroot 解决方法

CentOS7 无法启动,进入紧急模式,enter emergency mode根据提示查看日志,发现报错:Failed to mount /sysroot根据,老外的网站提供的线索:执行这个命令# xfs_repair -v -L /dev/dm-0然后,就修复了,再reboot,就OK ...

2018-07-18 11:22:59 22624 11

原创 Android动态申请权限的方法和代码

1.在manifest里面,添加以下内容    &lt;uses-permission android:name="android.permission.CAMERA" /&gt;    &lt;uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /&gt;    &lt;uses-permission an...

2018-06-22 00:56:06 1878 1

转载 Linux下Socket连接超时的一种实现方法

Linux下Socket连接超时的一种实现方法天新网 【转载】 2009年03月24日 18:50目前各平台通用的设置套接字(Socket)连接超时的办法是:创建套接字,将其设置成非阻塞状态。调用connect连接对端主机,如果失败,判断当时的errno是否为EINPROGRESS,也就是说是不是连接正在进行中,如果是,转到步骤3,如果不是,返回错误

2018-02-04 15:09:50 1005

原创 GLIBC_2.17 not found 解决办法

这个答案是来自stackoverflow: https://stackoverflow.com/questions/19471683/lib-libc-so-6-version-glibc-2-17-not-found亲测可用:1. Download 64 bit package from this sitehttps://launchp

2017-12-29 10:20:32 5038

原创 CMake 链接第三方的库 和 添加C++11的支持

这里的例子, 是链接libev , 如下:我的CMake 版本是3.10# CMake 最低版本号要求cmake_minimum_required (VERSION 2.8)# 项目信息project (server)# 查找当前目录下的所有源文件# 并将名称保存到 DIR_SRCS 变量aux_source_directory(. DIR_SRCS)# 添加第三方

2017-12-06 17:17:58 16516 4

原创 最爽的Linux下C++开发环境

在经历了, makefile开发C/C++, 文本编辑器的自我陶醉之后, 还是希望有个VS那样的IDE, 来的痛快啊.今天, 无意中发现了一个最爽的Linux下C++开发环境.Linux环境 + Qt5.9 + CMake使用方法:1.新建CMakeLists.txt2.填写常规的内容,到CMakeLists.txt, 例如这样的内容:# CMake

2017-12-06 15:51:55 25620

原创 makefile的输出重定向, 到文件里

make >filename 2>&1很简单吧!---------------------

2017-10-31 16:53:21 4047

原创 Fatal signal 11 (SIGSEGV), code 2, fault addr 0x9ff811c0 in tid 28902

一.前言调试安卓程序的so库,由于库是自己写的,经常性崩溃,我很苦恼,花了好几天时间解决问题。二.解决方案检查每一个malloc和free的配对关系。检查每一个内存的开辟和释放。尤其注意一些容器,例如list的节点创建和释放。

2017-10-30 17:14:43 15290

原创 cannot open shared object file: No such file or directory

一. 前言c语言编程, 希望调用动态链接库, 即 libxxx.so 文件, 编译好之后, 运行失败, 爆出如下错误:# ./test: error while loading shared libraries: libxxx.so: cannot open shared object file: No such file or directory二. 故障原因由于系统找不

2017-10-26 17:04:11 2179

原创 signal 11 (SIGSEGV),code 1,fault addr 0x0 和 Fatal signal 6 (SIGABRT), code -6 in tid 7061

第一个问题 : signal 11 (SIGSEGV),code 1,fault addr 0x0[解决方案]:在自定义view的布局标签加了一句关闭硬件加速的代码:android:layerType="software"第二个问题: Fatal signal 6 (SIGABRT), code -6 in tid 7061[解决方案]:这是一个

2017-10-17 18:05:18 13827 1

原创 安卓开发报错 heap corruption detected by dlfree

1.前言在调试安卓app的过程中,用到了JNI,即使用了C代码生成的so动态库.在运行过程中,报错如下:A/libc: heap corruption detected by dlfreeA/libc: Fatal signal 6 (SIGABRT) at 0x00001a0a (code=-6), thread 7079 (xxxx)2.解决方案根据

2017-09-28 17:25:48 4375

原创 编译JNI的动态库, 遇到的坑

一.前言最近工作中,需要编译JNI的动态库.这个动态库,要被Java调用.JNI的定义,在维基百科[1]中这样介绍:当你遇到一些情况, 不能完全使用Java语言完成开发的时候, JNI允许程序员编写native methods去解决问题. 很多特定的平台特征和标准库都是基于JNI开发的(PS:图像处理领域,很多都是C/C++开发的库,例如opencv). Java程序通过JNI

2017-09-21 20:58:33 7350 5

原创 函数指针,才是一切一切的根基

1.  前言最近工作中,在干一件事情,就是打通从安卓的java代码,到JNI,最后到server端的C代码。当然这个过程,早已有大神们做好了,我只是根据当前的业务需要,定制化的实现这个过程。那这和函数指针,有啥关系呢?请先看程序和内存的关联关系。2.  C语言中的内存布局C语言的内存布局[1], 如下图所示:任何一个C语言可执行程

2017-09-06 23:48:17 414

原创 函数指针在结构体中的赋值方法

一、定义了一个结构体struct abc{int (*a)();int (*b)();int (*c)();};要给这些函数指针成员赋值struct abc abcd={.a=fun1,.b=fun2,.c=fun3,};二、#include

2017-08-10 11:23:10 4637

原创 No symbol table is loaded. Use the "file" command 解决方案

一般来说,如果没加  -g,就加上。如果加了,还不行,就是如下原因:makefile 的编译后面加了什么语句, 把刚加的载“符号表文件”给去掉了也有可能.  比如 strip $@ 等。

2017-08-09 20:16:13 3526

原创 经典C语言的makefile

----------------------------------------------------------------TARGET = serverLIBS = CC = gccCFLAGS = -g -Wall.PHONY: default all cleandefault: $(TARGET)all: defaultOBJECT

2017-08-08 17:21:59 374

转载 tcp接收策略

策略:首先,接收一个长度。然后,根据长度再继续接收数据。最近在调程序的时候,发现发送端发送一个119136个char的内存的时候,在接收端不能全部接收,于是,通过调试发现,必须在接收端多次的recv以后,进行拼接:代码如下:char Lenbuf[4]; int iLen;  //接收数据

2017-08-03 11:25:09 829 1

原创 redis源码调试方法

最近,一直在看redis源码,还是调试来的直接啊!0.  redis版本4.0.1 版本1.  调试工具GDB调试工具2.  调试入口server.c :      int main(int argc, char **argv) ,     1645行    3.  调试方法(1)gdb调试,已经运行的

2017-07-31 17:57:40 2564

原创 Qt5最快最好的程序发布方法——windeployqt

Qt5 最快最好的发布方法:windeployqt生成的程序运行正常之后,找到项目的生成目录,比如 项目源码路径:C:\QtPros\hellomw\它的项目生成目录是C:\QtPros\build-hellomw-Desktop_Qt_5_4_0_MinGW_32bit-Release\进入这个文件夹,在进入它的子文件夹 release 里面,找到 hello

2017-06-27 12:59:32 3886 1

原创 Qt5中文乱码问题,解决

环境:Win7_x64, MSVC 2012 ,Qt 5.2setCodecForTr在qt5版本以后就不建议使用了,因为qt5以后强制要求其源码为utf8编码,不再需要进行编码转换了的。而且qt本身支持unicode,运行时也是可以正确显示多国语言的。至于你在代码中写入的中文,可以解决:QString a=QStringLiteral("汉语");

2017-06-27 09:21:58 387

转载 Qt中关于undefined reference to `vtable for classname`的问题

转自:http://blog.csdn.net/qian_f/article/details/8498747在Qt中自定义了类classname,想要使用Qt自带的信号与槽机制,所以必须要将classname继承于QObject。class classname : public QObject{       Q_OBJECTpublic:       .......

2017-06-26 16:22:05 377

原创 发现了string的bug,当拼接大量字符串的时候,会自动换行

C++的代码问题最近工作中,要拼接字符串,想一次性入库1000条记录。但是,拼接string之后,入库失败,说是有语法错误。百思不得其解。后来发现,是拼接之后,string居然自动在一些地方换行了,真是无语啊!【解决方案】首先,执行 string.resize() ,申请足够大的内存空间,然后再拼接,这样就不会有换行了。...

2017-06-24 16:19:35 6959 2

原创 Qt遍历目录的所有文件,并过滤后缀名

遍历目录下所有文件,并过滤后缀名,最后打印完整的文件路径直接上代码://判断路径是否存在 QDir dir(path); if(!dir.exists()) { return; } QStringList filters; filters << QString("*.xls"); dir.setF

2017-06-21 13:29:49 10289

原创 Qt读取excel的代码,已经封装好了

直接上代码,直接用就行。记得改文件名即可。QAxObject* excel = new QAxObject("Excel.Application"); excel->setProperty("Visible", false); QAxObject* workbooks = excel->querySubObject("WorkBooks"); workbooks

2017-06-19 16:34:47 10938 5

原创 去百度面试运维开发

今天,去百度,面试运维开发。本来以为,我干过运维,也干过开发,履历应该是很匹配。结果遇到一个装逼的人,拼命装逼,你越是谦虚,他就越是得意,装得忘乎所以。珍爱生命,原理百度!

2017-06-14 00:09:44 1508

原创 最小二乘法的C语言实现

1. 前言最近断断续续看了一些数学书,有高等数学,也有初等数学,有科普的,有微积分的。有时候,觉得数学才是世界上最美的东西,但有时候又觉得数学很高冷,不接地气。不过,前段时间工作中用到了最小二乘法,让我又对数学有了新的理解。理论指导实践的意义,就在于此。2. 最小二乘法根据维基百科的说明:最小二乘法(又称最小平方法)是

2017-06-07 13:07:59 47343 5

原创 QCustomPlot的使用方法

1. 官网下载去官网下载,最新的版本,地址:http://www.qcustomplot.com/目前最新的是2.0.0 Beta版本,使用起来和老版差不多。2. 使用方法(1)将压缩包解压,得到2个文件:qcustomplot.h  和  qcustomplot.cpp,放入项目文件夹。(2)如下图所示,在pro文件里,

2017-05-26 14:15:56 4569 1

原创 Linux下网络编程(3)——进程间通信(IPC),共享内存,传递结构体数据

1. 前言多进程,总有一些交互要做,不可能完成独立。这里是最简单的例子。一个写入,一个读取。一个建立共享内存,写入数据。一个读取共享内存的内容。2. 代码twriter.cpp 代码如下:#include#include#include#include#includeint main(){ int shm_id;

2017-05-25 11:36:22 3459 2

原创 一共有20级楼梯,每次可以上1级或2级,登上第20级一共有多少种上法

1. 分析上第1级: 1种上法上第2级: 2种上法上第3级: 3种上法  3 = 2 + 1上第4级: 5种上法  5 = 3 + 2上第5级: 8种上法  8 = 5 + 3...1,2,3,5,8, ...从第3级楼梯开始,每级楼梯的上法等于之前两级楼梯上法的和。由此构成斐波那契数列,登上第20级台阶种类数即为该数列第二十项的数值,经计算为1

2017-05-23 21:24:35 31287

原创 Linux下网络编程(2)——TCP多连接,1个server,多个client

1. 前言本次使用TCP连接,1个server,多个client。server和多个client之间,可以互相发送消息。2. 代码tcp_sever_fork.cpp  如下:#include #include #include #include #include #include #include #include #include

2017-05-23 15:55:23 14499 6

原创 Linux下网络编程(1)——最简单TCP server/client例子

1. 前言这是最简单的网络编程例子,一个服务端,一个客户端。环境:CentOS 6.7  64位,GCC 4.8.52. 代码2.1 服务端代码——tcpserver.cpp#include #include #include #include #include #include #include #include #include #

2017-05-22 01:33:29 2200

原创 C/C++ 将 字符串 赋给char[]

将 字符串 赋给char[]  :/* code not tested */#include int main(void) { char *src = "gkjsdh fkdshfkjsdhfksdjghf ewi7tr weigrfdhf gsdjfsd jfgsdjf gsdjfgwe"; char dst[10]; /* not enough for all o

2017-05-20 14:58:05 3946 1

Qt5做的计算器

Qt5做的简单计算器。

2016-03-22

LeapFTP3.0.1.46_yfy.zip

特别好用的FTP传输工具,操作简单,无门槛,传输速度极快,是各操作系统间传输的好工具

2014-01-09

cuteFTP.zip

一种好用的,各种操作系统间的传输工具,这种工具可以自由的传输文件,快速,好用

2014-01-08

空空如也

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

TA关注的人

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