自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (2)
  • 收藏
  • 关注

原创 通用makefile

makefile是编译大型C/C++项目的重要工具,虽说现在有cmake等自动编译工具,但是,掌握makefile的写法,依然是C/C++程序开发者必备的技能. 现以一个完整的例子来说明用makefile生成静态库(.a文件)以及可执行文件. 编译环境:操作系统版本: Debian 3.2.54-2 x86_64GCC版本: gcc version 4.7.2目录及文件组织如下...

2018-12-24 15:34:19 494 1

原创 stl::vector 遍历删除

/****************************************************** filename: vec_erase.cpp** created: 2018-03-26 18:05** brief: 遍历删除std::vector中满足条件的元素***************************************************/#include...

2018-03-26 18:07:42 3440

原创 A星寻路算法C++实现

A*寻路算法的C++实现,共两个文件 astar.h astar.cpp代码如下// astar.h BEGIN#ifndef ASTAR_H#define ASTAR_H#include #include #include // 地图格子数据结构struct grid_t{int id; // grid id {1,100}in

2017-09-23 16:49:32 1903

原创 expect经跳板机进入目标机器

开发机IP 10.1.1.182跳板机IP 10.1.1.7线上机器IP 10.30.16.238现要从开发机经过跳板机进入线上机器 从开发机进入跳板机 需输入用户名和密码 从跳板机进入线上机器 又要输入一次用户名和密码而且这种操作对于程序员来说比较频繁 会消耗不少的时间  在此做一个自动从开发机进入线上机器的shell脚本 以此节省时间脚本内容如下filename: go

2017-07-07 15:26:18 1024

原创 生成可执行文件显示编译过程通用Makefile

## TARGET: generate hello## $^ : 所有依赖## $@ : 目标文件## $## g++ -g -o main main.cpp## desc: 可以显示编译过程,最终生成可执行文件helloGXX := g++ INCLUDE_FILE := ./%.hSRC_FILES := $(wildcard *.cpp)OBJ_F

2017-04-14 14:07:53 691

原创 显示编译过程生成.a的通用Makefile

jackiexiao@debian:/opt/jackiexiao/makefile/src/math$ cat Makefile ## TARGET: generate libztxmath.a## $^ :  所有依赖 ## $@ :  目标文件## $## g++ -g -o main main.cppGXX := g++ INCLUDE_FILE :=

2017-04-10 09:59:50 1856

原创 精灵派项目中的Makefile 生成.a和.so

1. Makefile1 生成.a的Makefile## 可以显示编译过程 最终生成libclientproto.a###  Makefile1 BEGIN ###CC=g++PROTO_FILES=$(wildcard *.proto)SRC_FILES=$(PROTO_FILES:%.proto=../%.pb.cc)INC_FILES=$(PROTO_FILES:%.

2017-04-07 17:03:13 1056

原创 shell拉取MYSQL数据库数据

#!/bin/bash  :被注释的多行内容!:##arr_db_table=([0, 12, "10.30.16.237"], [13, 24, "10.30.16.23"])##arr_db_table=(1 2 3)arr_db_table=((0 12 "10.30.16.237"), (13 24 "10.30.16.23"))for va

2017-03-17 17:47:01 746

原创 linux安装配置redis

操作系统 centos 内核版本 Linux version 3.10gcc version 4.8.5redis版本号 3.0.51. 下载源码安装包 redis-3.0.5.tar.gz[root@VM_53_199_centos ztx]# wget http://download.redis.io/releases/redis-3.0.5.tar.gz2.

2017-03-17 15:39:46 218

原创 centos源码安装mysql-5.6.16版本

1. 安装前的准备工作安装编译源码所需的工具和库yum install gcc gcc-c++ ncurses-devel perl2. 安装cmake从http://www.cmake.org下载源码并编译安装wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz   tar -xzvf cmake-2

2017-03-14 17:19:24 1392

原创 Makefile自动依赖

http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2012/07/21/2602044.html

2017-03-02 12:32:13 326

原创 公钥加密_私钥解密

http://www.cnblogs.com/shijingxiang/articles/4445325.html

2016-09-29 18:43:58 404

原创 Makefile

/opt/jackiexiao/blitz/proto/client/define makefile## 生成静态库CC=g++PROTO_FILES=$(wildcard *.proto)SRC_FILES=$(PROTO_FILES:%.proto=../%.pb.cc)INC_FILES=$(PROTO_FILES:%.proto=../%.pb.h)OBJ_FILE

2016-09-28 11:13:09 369

原创 淘宝引擎tengine_nginx使用实例

使用了nginx引擎, 并发量200W以上http://tengine.taobao.org/book/#id2

2016-09-28 07:48:21 559

原创 登录服和游戏服分开的原因

http://blog.sina.com.cn/s/blog_62f9aed00102w449.html

2016-09-24 21:16:28 726

转载 GDB带参数调试

参考地址http://blog.sina.com.cn/s/blog_4b6f784001011yvh.html步骤如下:比如程序的名字为hello 参数为a b c则运行该程序的命令为:$ ./hello  a  b  c那么调试的时候 可以这样:$ gdb hello(gdb) set args a b c(gdb) rprogram exite

2016-09-23 11:10:27 440

转载 linux进程启动流程

http://www.cnblogs.com/wickedpriest/p/4418909.html

2016-09-22 20:44:16 472

原创 __attribute__((pack))的用法

typedef struct shm_head {      volatile int head;      volatile int tail;      atomic_t blk_cnt;  } __attribute__ ((packed)) shm_head_t;告诉编译器取消结构在编译过程中的优化对齐, 按照实际占用字节数对齐,是GCC特有的语法.

2016-09-22 14:55:24 1053

原创 memcache分析

http://www.linuxidc.com/Linux/2015-01/112507p8.htm

2016-09-21 22:24:34 223

原创 半同步半异步网络编程

http://blog.csdn.net/dongfuye/article/details/47081045

2016-09-21 07:12:52 275

转载 libev源码分析

很不错的一篇分析libev源码的博客http://blog.chinaunix.net/uid-8048969-id-5008922.html

2016-09-18 22:01:17 262

原创 lua中文参考手册

http://manual.luaer.cn/

2016-09-15 20:01:37 1208

原创 多进程手游流程分析

1. gate启动时,向master注册2. 动态增加新的gate的流程:   开启新的gate时,向master注册,master收到newgate的注册请求后,向所有的gameserver发送PtcM2G_NewGateConnected消息   gameserver会把此gate的IP port 名字等信息保存下来 放到gatelink的列表里面去,重连管理器reconnmana

2016-09-14 22:51:18 456

原创 游戏登录流程

启动游戏--选择服务器--自动更新--账号登录--选择频道--创建角色--开始游戏流程分析:启动游戏:加载资源;初始化SDK;下载服务器列表文件,举例为serverlist.txt,该文件存在于web服务器上选择服务器:读取serverlist.txt中的服务器列表,列表中没行包含服务器的区号 区名字 游戏服务器ID 游戏服务器名字 IP 端口 最低客户端版本号 资源地址从

2016-09-13 18:38:17 3397

转载 网页游戏与平台登录对接流程

游戏 登录

2016-09-13 17:51:34 2057

原创 面试遇到的问题

1. mysql的一个表,以A.B.C三个字段作为联合索引,如果以其中的一个字段作为查询条件,会不会用到索引如果以A 也就是联合索引的第一个索引 作为查询条件 则会用到索引 如果以B或者C作为查询条件 则不会用到索引2. 玩家登陆的具体流程客户端首先连接loginserver 从loginserver获取到gateserver的列表 然后选择一个连接数最少的gateserver

2016-09-12 18:06:37 196

原创 windows&linux多线程互斥

///////////////////////////////////////////   begin of CGlobal.h ///////////////////////////////////////////////////> filename: CGlobal.h#ifndef CGLOBAL_H#define CGLOBAL_H#include "CMutex.

2016-09-06 22:14:40 193

原创 类模板及其继承

模板类 继承

2016-09-06 22:03:32 279

原创 解决线上问题的办法

1. 查日志2. 将线上用户的数据导出,放到开发环境的数据库,然后在开发环境复现问题

2016-08-29 14:10:03 442

原创 struct作为map的key

某些情况下,只用一个int或者一个string,无法满足需求,需要多个字段联合作为map的key,如何实现? 请看如下代码:#include #include #include struct mapkey{        int sceneID;        int teamID;///>重载== 运算符        bool operator

2016-08-12 15:23:20 1179

原创 cmake编译出现重复定义main函数解决方法

使用cmake生成makefile,编译时,出现redefine main 的错误提示,该提示是由于在工程中,出现了两个或者以上的main函数,多由写测试程序,程序中包含了main函数,然后在搬进开发的工程中时,忘了注释掉main函数,原来工程中有一个main函数,所以出现两个main函数定义的错误.尝试把测试文件中的main函数注释掉,再编译,但还是出现重复定义main函数的错误,g

2016-08-12 11:23:42 13371

原创 GCC通用makefile

## 一个可以编译多文件的简单makefileTARGET:=./helloINCDIR:=../include##SRCDIR:=srcSRCDIR:=./OBJDIR:=./obj$(shell if !([ -d $(OBJDIR) ]); then mkdir $(OBJDIR); fi)##LIBDIR:=lib##$(shell if

2016-08-11 21:31:28 495

原创 查看linux系统宏定义

跨平台程序,经常要用到区分系统的宏定义,比如windows中的WIN32, WIN64, linux中的 unix, linux等等系统自定义宏那么在linux下面,怎么查看系统有哪些自定义宏咧,用如下方法:$ touch dummy.hxx$ cpp -dM ./dummy.hxx输出如下:[xhq@syfh1-10-0-128-229 server]$ cpp -d

2016-08-11 15:31:08 5691

原创 vs2010找不到snprintf标识符

编译环境为vs2010, 在vs2010中调用snprintf,代码如下:snprintf(buf, sizeof(buf), "%d, %d", int1, int2);在vs2010中编译,报告如下错误: error C3861: “snprintf”: 找不到标识符因为snprintf并不是C/C++中定义的标准函数,所以在许多编译器中,厂商提供了其相应的版本,

2016-08-08 19:04:12 3188

原创 统计字符串中字符个数

有时一个字符串中同时包含了中文,英文,标点符号,特殊符号如@#$等,如何统计该字符串中包含了多少个字符呢?可以用一下函数int CountWord( std::string content ){int cutNum = 0; char* contsms = (char*)content.c_str();while( *contsms ){if( 0 > *conts

2016-08-03 23:36:52 703

原创 C++栈上申请过大内存导致stackoverflow

今天写了一个函数,使用了约2M的空间,下列函数中的静态常量max_audio_index_file_size=2000000,void ReadAudioIndexFile(){std::string fileName = audioFilePath + audioIndexFileName;FILE* pFile = fopen( fileName.c_str(), "rb" )

2016-07-23 18:01:08 2205

原创 解决线上问题办法

1. 将线上玩家数据导入到开发环境数据库,然后在本地测试该帐号的数据2. 查线上日志,一般是查错误或者警告日志

2016-07-21 13:28:43 347

原创 screen命令

在关闭远程终端的情况下,仍可以让程序运行,这就是screen命令的功能,以下链接对screen命令解释得非常详细:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

2016-07-19 15:36:52 209

原创 git文件更新列表中,出现了不是自己更改的文件,如何处理

现在git的客户端sourcetree的文件更新列表中,出现了a.txt. b.txt. c.txt三个更新过的文件,其中,这三个文件我都没修改过,这时,应该怎么处理呢 ?可以直接把这三个文件“丢弃”掉,放弃此次修改,然后强拉代码,此时,就拉到了最新的代码,而且不会有待提交的文件

2016-07-15 22:04:17 976

原创 vs2010修改一个文件,所有文件全部重新编译的解决方法

一个项目通常由多个代码文件组成,修改其中一个文件,编译器应该只是重新编译该文件,然后链接,生成可执行文件,速度非常快,但是,如果碰到修改一个文件,导致所有文件重新编译的话,就会导致编译时间非常长,期间,我们就只能无奈的等待了。这种情况无疑非常浪费时间,因为一个大的工程或者解决方案,重新编译一次的时间往往达数分钟之久,编译两次,一个小时就过去了,多么痛苦的事情,那么如何解决呢?

2016-07-15 20:55:58 3595

A星算法C++实现

C++实现的A*寻路算法,经过测试,在有障碍物的情况下,路径为期望路径,内附测试结果,可以修改地图的大小及障碍物位置,比如大小改为1920*1080,使其更接近真实电脑屏幕或者手机屏幕分辨率,得到更为贴近实际的运算效率

2017-09-23

windows API编写的应用程序,一个闹钟,运行时显示的时间与系统时间一致。

一个较好的闹钟程序,运行时能显示系统的时间,程序很简单,用windows API编写。

2009-12-11

空空如也

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

TA关注的人

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