- 博客(27)
- 资源 (7)
- 收藏
- 关注
转载 CentOS 上编译安装gcc8.1版本全过程记录(包括排坑与常见错误解决)
原文出处 之前发现开发机上安装的gcc版本太旧了,连C++11新特性都不支持,于是决定对其进行升级。本文详细记录了在CentOS 6上升级gcc的整个过程,特别是其中遇到的坑和解决办法。安装依赖项先把依赖项装好sudo yum install glibc-devel bison flex texinfo build-essential1在安装的过程中就会发现翻车了:$ l...
2019-02-16 15:58:04
3006
原创 【Leetcode】 Merge k Sorted Lists
Leetcode第23题:题目的意思就是讲多个有序的链表合并成一个有序的链表。 解题思路:因为所有的链表都是有序的。我们可以将所有链表的首节点拿出来建立一个小根堆。每次取堆顶的节点即最小的节点。取完最小节点后,如果这个最小节点有后续节点,则加到小根堆中,并调整小根堆。再循环上面的操作,取堆顶节点并将下一个节点加到堆中,一直循环直到堆中的元素为空。 下面贴出完成代码(这里为了...
2019-01-22 21:21:58
314
原创 Socket 非阻塞模式下connect 返回EINPROGRESS(115)错误
今天再测试socket的时候,发现一个很奇怪的问题,就是客户端再connect的时候第一次connect总是会返回-1,errno是115,往往第二次连接就可以成功了。但是对于服务端来说,第一次连接已经成功返回了。后来想想可能跟自己的设置socket是非阻塞的有关系,后来吧socket设置成阻塞的,问题确实就没有了。后来有反复尝试了非阻塞的。我先把服务器关闭,让客户端连接,可以发现从打出来的e...
2018-12-03 09:40:05
10072
原创 mysql error:2014 Commands out of sync; you can't run this command now
最近在项目中经常会出现数据库操作失败的,日志抛出的错误的 Commands out of sync; you can't run this command now。但是把具体的这条sql语句放到可视化工具里面执行却并没有什么问题。所以sql语句并没有什么语法的问题,mysql官方对这个错误的解释是: If you get Commands out of sync; you can't r...
2018-11-24 15:01:40
6116
2
原创 C++构造函数中调用虚函数是否有多态的效果
C++多态的一个重要应用就是虚函数。但是当我们再基类的构造函数中调用一个子类重载的虚函数会出现多态的效果吗?我们具体看一下下面的实例:#include <iostream>#define P(x) std::cout<<x<<std::endl;class A{public: A(){ func(); } ~A(){} virtual ...
2018-10-09 10:31:11
609
原创 C++ 单继承 多重继承的内存布局
单继承#include <iostream>#define P(x) std::cout<<x<<std::endl;class A{public: A(){} ~A(){} virtual void func(){ P("A func call"); } virtual void funcA(){ P("A funcA call")...
2018-10-08 23:11:59
688
转载 函数调用实现过程详解(栈空间解析)
转自:函数调用栈 剖析+图解 栈: 在函数调用时,第一个进栈的是主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。当发...
2018-09-14 09:08:42
3747
转载 Linux进程地址空间 && 进程内存布局
转载自:https://blog.csdn.net/yusiguyuan/article/details/45155035 一 进程空间分布概述 对于一个进程,其空间分布如下图所示: 程序段(Text):程序代码在内存中的映射,存放函数体的二进制代码。初始化过的数据(Dat...
2018-09-06 09:09:27
537
原创 阿里云服务器,客户端socket连不上的问题
最近弄了个阿里云的免费试用版,想着把自己的服务丢到阿里云上去试试。原以为这应该是一件比较顺利的事情,却弄了很久才找到原因。在阿里云上安装完git,将代码拉下去编译完成后,启动服务一切正常。客户端我首先ping一下,也没有问题。注意,这是ping要选用公网地址。但是客户端程序跑起来时候一直在connect的时候失败,想到关闭防火墙,但是好像并没有什么软用。后来网上找了好长时间才发现是端口没有开启...
2018-09-02 10:39:33
9547
1
原创 linux 下程序运行时出现的 error while loading shared libraries
Linux中error while loadin 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下;当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。 1、首先打开/et...
2018-05-09 21:53:07
1368
转载 centos7安装redis及开机自启动
原出处reids安装环境是centos7首先现在下载Linux下的安装包我是在/usr/local目录下安装的,至于安装目录自己看着办吧下载成功后当前目录下有安装包接下来就是安装源码包了经过短暂的等待后接续编译到这里,我们安装的redis可以满足一般的使用了,如果需要自己特殊的需求,需要修改相关的配置文件,我们尝试一下redis的启动上图表示redis服务启动成功,接下来我们简单测试一下redis...
2018-05-08 08:54:01
3944
原创 关于std::enable_shared_from_this 的继承和 shared_from_this调用崩溃的解析
enable_shared_from_this的由来在智能指针的使用过程中我们会遇到这样一种情况,我们在类的成员函数调用某一个函数,而该函数需要传递一个当前对象的智能指针作为参数时,我们需要能够在成员函数中获得自己的智能指针。在多线程编程中也存在这样的应用,如果我们的线程函数绑定的是一个类成员函数,我们通过可以把该对象的智能指针作为参数传递到线程函数中,这种做法是人为的增加了对象的引用计数,延长对...
2018-03-23 23:02:07
3877
原创 python 传值 传引用 可变对象 不可变对象 的区别与联系
可变对象 与 不可变对象我们知道在python中一切皆对象。在python世界中可以把对象大体分成两大类:不可变对象:数字(int,float, double)、字符串、元组(tuple)、function等可变对象:字典(dict)、列表(list)、集合(set)、程序自定义的对象所谓不可变对象就是对象的内容不能改变。给人感觉有点像c++的const修饰的对象。但是我们可以对一个不可变对象进行...
2018-03-06 23:44:11
1986
2
转载 游戏服务器架构
出处http://blog.csdn.net/lfhfut/article/details/1778471http://gameblog.yuzhubao.com/ http://thatax.blog.163.com/blog/static/208926802008629111718435/http://bbs.gameres.com/home.php?mod=space&uid=295...
2018-03-01 12:55:37
795
转载 CentOS 7 设置 svn 开机启动
出处安装好 svn 服务后,默认是没有随系统启动自动启动的, CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务于是查看 systemd 里 svn 的配置文件 /lib/systemd/system/svnserve.service[plain] view plain copy[Unit] Descriptio...
2018-03-01 09:49:59
2285
原创 Python 装饰器详解
文章先由stackoverflow上面的一个问题引起吧,如果使用如下的代码:@makebold@makeitalicdef say(): return "Hello"打印出如下的输出: <b><i>Hello<i></b>你会怎么做?最后给出的答案是: def makebold(fn): def wrapped(): ...
2018-02-28 23:26:02
261
转载 git仓库完整迁移
转载自Git仓库迁移而不丢失log的方法要求能保留原先的commit记录,应该如何迁移呢?同时,本地已经clone了原仓库,要配置成新的仓库地址,该如何修改呢?注意:如果使用了代码审核工具Gerrit,那么在进行操作之前需要将Gerrit关掉,等成功恢复后再将Gerrit开户即可1、使用git push --mirror先了解一些git的基本参数介绍git clone --bareGIT-CLON...
2018-02-28 18:46:02
6970
转载 Linux下的SVN服务器搭建
转载自鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结/******开始*********/系统环境:Centos 6.5第一步:通过yum命令安装svnserve,命令如下:>yum -y install subversion此命令会全自动安装svn服务器相关服务和依赖,安...
2018-02-28 18:00:57
194
原创 初识go语言之 数组与切片(创建,遍历,删除,插入,复制)
1、数组go语言的数组与其他语言的数据定义基本类似:大小确定,内存连续,可以随机访问。数组的元素使用操作符[]来索引。首元素是array[0],最后一个元素是array[len(array)-1]。1.1数组的创建数组的创建有下面三种方式[length]Type[N]Type{value1, value2, ..., valueN}[...]Type{val
2018-02-05 23:38:51
19476
4
原创 git忽略某些文件(.gitignore的配置语法)
很多时候我们不希望某一类文件被git自动添加,也不希望这类文件出现在git的未跟踪列表中。尤其是在git status命令中输出一大堆无关的文件。git支持我们自定义忽略某些文件的,git status也会变的跟清爽我们需要在项目中与.git文件夹的同级目录下创建一个.gitignore文件(注意前面有一个点)。gitignore文件有一定的书写规范,如下所示1、空行或者以#开始的行会被忽略2、支...
2018-02-02 20:50:25
2063
原创 游戏服务器AI 之行为树(基于behavior designer)(二)
行为树节点类型介绍前一篇主要是通过状态机和分层状态机引申出了行为树(点击打开链接) ,这章为大家介绍行为树的一些常用节点,以及其工作原理:行为树的节点大体可以分成下面几大类:控制节点条件节点动作节点装饰节点不同的人可能设计得会有点小出入,一般来说前面三大类是必须的,有的可能业务没有涉及到装饰节点,但有时候装饰节点的存在会使行为树看起来更自然,也更益于策划的配置。
2018-01-27 21:44:32
2452
1
原创 linux 通过源码安装git 出现的 can't locate Extutils/MakeMaker.pm in @INC(@INC contains: /usr/local/lib64/perl5
在工作中有时候会在内网开发,导致不能使用yum 或者 apt-get 命令在线安装git。 这时候就需要通过源码包安装git了在安装的时候可能会出现 can't locate Extutils/MakeMaker.pm in @INC(@INC contains: /usr/local/lib64/perl5 错误。这时候。网上给出的方案基本上都是基于yum安装命令解决 yum install p...
2018-01-23 20:08:27
2525
原创 游戏服务器AI 之行为树(基于behavior designer)(一)
前言AI应该是MMO类游戏服务器的一个主要模块,AI设计的好坏直接影响着游戏的品质。在现行的AI实现方案中,主要包括下面几大类方案一:有限状态机(FSM)顾名思义,就是列举出所有的状态,根据不同的状态去处理相应的逻辑例如游戏中的一般的小怪的AI:没有敌人的时候就执行巡逻动作发现敌人就攻击敌人攻击距离不够则追击超出最大的追击
2018-01-21 21:07:39
4016
3
原创 boost 实现 GB2312 到 UTF-8 的相互转换
头文件 #include 实现函数:std::string CodeConvert( const char* in_buf,const char* from_charset,const char* to_charset){ std::string ret(in_buf); if ( strcmp(from_charset, "gb2
2015-09-23 11:41:46
4437
原创 vs2010 去掉红色下划线 波浪线
分别试一下下面两种方法:1) 可能是安装visual assist的原因:在VAssistX菜单栏->Visual Assist X Options->展开Advanced->Underlines->把underlines spelling errors in comments and strings using的勾去掉就行2)可能跟visual assist无关,试试这种解决方
2015-01-29 17:40:34
1468
1
原创 BOOST_SCOPE_EXIT 的用法
BOOST_SCOPE_EXIT(&flag) {} BOOST_SCOPE_EXIT_ENDBOOST_SCOPE_EXIT和BOOST_SCOPE_EXIT_END都是配合着使用的,BOOST_SCOPE_EXIT()里面可以传入多个指针。其作用相当于回调函数,在作用域结束之后程序会自动调用BOOST_SCOPE_EXIT到BOOST_SCO
2014-09-14 20:55:43
6769
1
原创 wxWidgets 自定义事件触发
其步骤如下:#define ID_REFRESH_TASK_LIST 9000 //定义事件IDwxDEFINE_EVENT(EVT_REFRESH_TASK_LIST,wxCommandEvent); //定义事件处理宏EVT_COMMAND(ID_REFRESH_TASK_LIST,EVT_REFRESH_TASK_LIST,P
2014-09-11 21:04:45
2130
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人