- 博客(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
567
1
原创 stl::vector 遍历删除
/****************************************************** filename: vec_erase.cpp** created: 2018-03-26 18:05** brief: 遍历删除std::vector中满足条件的元素***************************************************/#include...
2018-03-26 18:07:42
3527
原创 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
2017
原创 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
1072
原创 生成可执行文件显示编译过程通用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
760
原创 显示编译过程生成.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
1917
原创 精灵派项目中的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
1146
原创 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
808
原创 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
253
原创 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
1461
原创 Makefile自动依赖
http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2012/07/21/2602044.html
2017-03-02 12:32:13
385
原创 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
419
原创 淘宝引擎tengine_nginx使用实例
使用了nginx引擎, 并发量200W以上http://tengine.taobao.org/book/#id2
2016-09-28 07:48:21
641
转载 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
496
原创 __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
1108
转载 libev源码分析
很不错的一篇分析libev源码的博客http://blog.chinaunix.net/uid-8048969-id-5008922.html
2016-09-18 22:01:17
297
原创 多进程手游流程分析
1. gate启动时,向master注册2. 动态增加新的gate的流程: 开启新的gate时,向master注册,master收到newgate的注册请求后,向所有的gameserver发送PtcM2G_NewGateConnected消息 gameserver会把此gate的IP port 名字等信息保存下来 放到gatelink的列表里面去,重连管理器reconnmana
2016-09-14 22:51:18
514
原创 游戏登录流程
启动游戏--选择服务器--自动更新--账号登录--选择频道--创建角色--开始游戏流程分析:启动游戏:加载资源;初始化SDK;下载服务器列表文件,举例为serverlist.txt,该文件存在于web服务器上选择服务器:读取serverlist.txt中的服务器列表,列表中没行包含服务器的区号 区名字 游戏服务器ID 游戏服务器名字 IP 端口 最低客户端版本号 资源地址从
2016-09-13 18:38:17
3597
原创 面试遇到的问题
1. mysql的一个表,以A.B.C三个字段作为联合索引,如果以其中的一个字段作为查询条件,会不会用到索引如果以A 也就是联合索引的第一个索引 作为查询条件 则会用到索引 如果以B或者C作为查询条件 则不会用到索引2. 玩家登陆的具体流程客户端首先连接loginserver 从loginserver获取到gateserver的列表 然后选择一个连接数最少的gateserver
2016-09-12 18:06:37
217
原创 windows&linux多线程互斥
/////////////////////////////////////////// begin of CGlobal.h ///////////////////////////////////////////////////> filename: CGlobal.h#ifndef CGLOBAL_H#define CGLOBAL_H#include "CMutex.
2016-09-06 22:14:40
232
原创 struct作为map的key
某些情况下,只用一个int或者一个string,无法满足需求,需要多个字段联合作为map的key,如何实现? 请看如下代码:#include #include #include struct mapkey{ int sceneID; int teamID;///>重载== 运算符 bool operator
2016-08-12 15:23:20
1245
原创 cmake编译出现重复定义main函数解决方法
使用cmake生成makefile,编译时,出现redefine main 的错误提示,该提示是由于在工程中,出现了两个或者以上的main函数,多由写测试程序,程序中包含了main函数,然后在搬进开发的工程中时,忘了注释掉main函数,原来工程中有一个main函数,所以出现两个main函数定义的错误.尝试把测试文件中的main函数注释掉,再编译,但还是出现重复定义main函数的错误,g
2016-08-12 11:23:42
14480
原创 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
558
原创 查看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
5781
原创 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
3357
原创 统计字符串中字符个数
有时一个字符串中同时包含了中文,英文,标点符号,特殊符号如@#$等,如何统计该字符串中包含了多少个字符呢?可以用一下函数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
799
原创 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
2290
原创 screen命令
在关闭远程终端的情况下,仍可以让程序运行,这就是screen命令的功能,以下链接对screen命令解释得非常详细:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html
2016-07-19 15:36:52
238
原创 git文件更新列表中,出现了不是自己更改的文件,如何处理
现在git的客户端sourcetree的文件更新列表中,出现了a.txt. b.txt. c.txt三个更新过的文件,其中,这三个文件我都没修改过,这时,应该怎么处理呢 ?可以直接把这三个文件“丢弃”掉,放弃此次修改,然后强拉代码,此时,就拉到了最新的代码,而且不会有待提交的文件
2016-07-15 22:04:17
1098
原创 vs2010修改一个文件,所有文件全部重新编译的解决方法
一个项目通常由多个代码文件组成,修改其中一个文件,编译器应该只是重新编译该文件,然后链接,生成可执行文件,速度非常快,但是,如果碰到修改一个文件,导致所有文件重新编译的话,就会导致编译时间非常长,期间,我们就只能无奈的等待了。这种情况无疑非常浪费时间,因为一个大的工程或者解决方案,重新编译一次的时间往往达数分钟之久,编译两次,一个小时就过去了,多么痛苦的事情,那么如何解决呢?
2016-07-15 20:55:58
3737
1
A星算法C++实现
2017-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人