C++
koangel
we need share.... new game ,new life at 51going.com
展开
-
[linux]C++跨平台开发环境配置笔记
以前一直在UBUNTU下做开发,一般都用CODEBLOCK之类的IDE,总之还是很简单的,这里也就没什么难点。最近上了一个新项目,我们不打算采用UBUNTU,本来打算用OPENSUSE,但是发现OPENSUSE太大,而且公司居然没它的光盘,只能用REDHAT,杯具啊,当然不是觉得REDHAT不好,只是我不是很习惯。这次要说的就是跨平台调试与编译环境的配置。为了让新手迅速适应LINUX开原创 2012-02-06 22:55:25 · 713 阅读 · 0 评论 -
编译CODEBLOCKS最新版本遇到问题搜集
bootstrap出现错误针对文件:dos2unix bootstrap acinclude.m4 codeblocks.pc.in configure.in 执行MAKE到后面出现编译的时候出现can not be used when making a shared object; recompile with -fPIC错误解决办法./configure –with-pic –原创 2012-02-06 23:08:31 · 811 阅读 · 0 评论 -
MongoDB千万级插入数据测试(MMO在线游戏应用场合)
一、筹备我们要做一次千万级的MONGODB测试,操作系统选用CentOS 5.5 64位版,基本模拟实际的使用环境,采用单机集群模型(测试单机多CPU情况下的实际效果)。测试基准数据:服务器配置:Intel Xeon E5506 * 2 共8核内存是8GB DDR3应用程序:编程语言:C++编译器:GCC 4.4.5BOOST版本:1.47原创 2012-03-07 14:11:19 · 2583 阅读 · 1 评论 -
linux signal处理中的几个问题(suse下莫名其妙死锁的处理)
最近发现在腾讯的CVM上,服务器总是平凡的死锁后查明真像为当你发生sig 11的异常时,会进入处理函数 signalHandler同时此时生成相应的dump file时间,在这里我调用了函数 localtime 函数。此函数会在内部实现时调用malloc函数,而此函数有锁是不可重入函数,所以这个时候你会发现dump写不出来,而且所有程序死锁了。实际上从程序角度来看此原创 2012-03-28 16:29:33 · 821 阅读 · 0 评论 -
gcc string各种神奇的崩溃
写下来,防止忘记。当发生 string内部的任何崩溃时,请尝试一下行为将stl string库,切入stlport原创 2012-03-28 16:32:59 · 1232 阅读 · 0 评论 -
suse 10 sp2下编译luabind
记下来防止忘记首先需要安装readline RPM包插入DVD光盘1,然后通过install software来安装readline接着编译lua 5.1.4make linuxmake install接着下载一个boost_1_46_1,剩下编译方式参考http://blog.csdn.net/koangel/article/details/7237949原创 2012-03-14 18:12:55 · 660 阅读 · 0 评论 -
内存指针基地址查询算法
首先针对所有有NP,GPK等保护引擎,CE貌似都会被干掉所以这里写一篇关于自动查询内存基地址的伪代码算法,防止忘记。DWORD _begin = 0x40000000; //用于32位DWORD _end = 0x7FFFFFFF;DWORD _offset = 0;DWORD _offsetDp = 0xff;DWORD targetAddress = 0xBBBBB;原创 2012-03-20 15:21:20 · 1163 阅读 · 0 评论 -
CVM下如出现异常情况的处理方法
1、进程无故消失或进程无故死锁与框架基本上可以断定是因为服务器内存已满导致的,请执行 echo 3 > /proc/sys/vm/drop_caches2、无法启动程序时可以基本断定GCC的版本过高导致的请重新设置GCC的编译选项,已适应旧版本的哈希表原创 2012-03-21 14:48:58 · 1157 阅读 · 0 评论 -
请不要对Boost Format使用Byte作为参数
曾几何时我们可以肆无忌惮的对sprintf传入BYTE等类型作为参数,只要你指定的为%D但是boost format不可以,当你发生类型截断,错误,异常,请尽快查看你传入的类型是否为Byte因为format会将GoByte当做char来打印,请诸位务必注意,切记 切记原创 2012-04-24 16:47:43 · 782 阅读 · 0 评论 -
远程调试编译LINUX,UNIX应用程序组件
最近使用C#开发的最新工具组件 knl remote debug完成了下载地址:http://code.google.com/p/knl-remotedebug/工具目前介绍:支持SSH的连接数据目录校验支持CODEBLOCKS,ECLIPSE的编译支持类似UNIWIN,但比UNIWIN效率高15倍目前不支持目录数据同步,可以采用WINSCP等软件同步目录设原创 2012-06-07 18:08:33 · 913 阅读 · 0 评论 -
【原创】项目生命周期模型(付个人观点的解决方案)
转载请注明出处 http://blog.csdn.net/koangel一、前言以下内容为小弟拙见,喷者见谅。结合小弟经历过的诸多项目发现,除了本人有能力主导的项目外,基本上均无正常按期完成产品。所以有了诸多想法,诞生此文,结合《软件快速开发》理论,得出以下分析内容以及猜想。二、风险分析(进度风险以及问题)风险往往是可在产品开发初期即可避免的问题或习惯,如果我们无法合理的再原创 2012-02-06 23:01:12 · 1025 阅读 · 0 评论 -
GCC 4.5在SUSE平台下编译选项
./configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib--enable-languages=c,c++,objc,fortran,obj-c++ --enable-checking=release --with-gxx-原创 2012-02-06 23:01:46 · 502 阅读 · 0 评论 -
在Linux下编译Luabind
自己弄了下 虽然可以用,但是bjam没安装成功,同事说他可以,把安装步骤发我。按着他的步骤在新的一台机子上安装,和我自己的安装结果是一样的,,,先把安装步骤记录一下,以后有空再查查吧,为什么呀,不成功?1. 安装luaa: make linuxb: make install2. 安装boost库a: cd boost_1_46_1/tools/build/v2b:转载 2012-02-06 22:58:48 · 1271 阅读 · 0 评论 -
【原创】boost::recursive_mutex请小心使用
recursive_mutex会减少死锁几率?恩看上去的确如此,但是事实上呢?我们从BOOST的官方逻辑去理解:recursive_mutex类可多次进入锁,这样在递归时可以避免一次死锁的几率,这是原本BOOST中所体现的一种思想,OK,为什么我们要质疑其问题。最近项目中大量使用recursive_mutex锁作为主力锁,但是奇迹般的发现,一个递归函数仍然存在死锁(已做优化,换为mutex原创 2012-02-06 22:57:32 · 2438 阅读 · 0 评论 -
[原创]MysqlConnector-C就是libmysql.so
记下来防止自己忘记。今天做了件比较二的事情,一直以为libmysql.so就是mysql-devel RPM包后来自己找了很多资料才发现是MysqlConnector C,问题是我真没找到mysql的文档原创 2012-02-06 22:58:01 · 667 阅读 · 0 评论 -
[原创]推荐一组C++的库
1、BOOST:不必说啦,世界上最酷的C++准标准库了,一切可以替代STD的行为其中都有 http://www.boost.org2、ACE :工业级网络库,基本上涵盖了网络模型的中的大部分应用行为,非常库啊,我的ThreadObject就是模仿ACE的线程库封装的,超棒啊3、Sqlite Wapper 作者是phrostbyte,他将Sqlite封装的很细致,当然前提是你需要为此安装BO原创 2012-02-06 23:02:14 · 578 阅读 · 0 评论 -
Linux下使用Daemon实现服务器永久存活
很多服务器端设计者,很少会考虑到服务器永久存活或热替换的问题,貌似真的很少其中永久存活最大的理论支持就是,我们如何真正的保证一组服务器持续的存在,即便宕机?其实没有人能保证自己写的代码那么完美无瑕,因为它的存在就是必须去崩溃,必须暴露更多的错误才能更加完美无瑕,所以除了自己有大量的测试代码外,其实对于程序本身的测试很多是无法达到的,那么我们就需要更多的外部支持,那么在实际运营中,最好的原创 2012-02-06 23:07:42 · 1084 阅读 · 0 评论 -
又回到那个IDE的问题
我最近由于无法忍受VS2010以及NETBEANS 7.1的内存占用,我表示我必须采用其他方式来替代这种开发模型。结果是让我得到了以下的几种组合,在不变动NETBEANS的PROJECT的情况下,我们有了。以下均集合winscp同步源码至目录1、VS2010 and Netbeans 优点:可以快速开发项目,并且有良好的提示体系。缺点:内存占用巨大,很卡。2、slicked原创 2012-02-06 23:09:07 · 757 阅读 · 0 评论 -
WinGDB 使用Visual Studio远程开发Linux程序
WinGDB一个很陌生的工具,他诞生比较晚属于一个年轻的工具,截止到目前更新版本2.2有破解 2.1的可以试试,喜欢的朋友。WinGDB可以快速方便的帮助你结合vs以及vax来快速开发基于linux,bsd,unix等环境下的应用程序,甚至包括android等。授权费 1-9为500元左右(请参考汇率),10个以上会稍微便宜点,有钱的主可以支持一下正版。当然只有英文版本,没原创 2012-02-06 23:39:57 · 2773 阅读 · 0 评论 -
OpenTNL 关注
OpenTNL是TGE的一部分,开源但是其商业版本卖价 295美元有幸下载到了OpenTNL的一个版本,其代码复杂程序的程度的确颇高,但仍然并非那么复杂..OpenTNL的效率仍然处于一个未知的数字..OpenTNL底层采用UDP实现其效率理论上颇高,但对于国内大部分机房屏蔽UDP对于大部分网络库可能是一种沉重的打击,有可能某一天我们不得不抛弃某个地区的玩家对其库有一段英文如下:原创 2012-02-06 22:54:48 · 754 阅读 · 0 评论 -
【原创】在工厂模式中使用FREELIST
一、前言以下内容仅为理论,并未实践,考虑在现在的项目中实践或做一个测试的DEMO,见谅见谅。但开了一个不错的思路???我绝对不是第一个想到这个理论的,只是我突然觉得它有改进的余地。请不要再一般的环境中使用以下技术,对一般程序而言绝对没用,请在大量使用内存并希望可以通过预申请内存达到稳定的应用程序中使用以下理论。二、选择库我们常常有使用freelist的习惯,尤其在服务器端中使用原创 2012-02-06 22:55:59 · 655 阅读 · 0 评论 -
[原创] GCC 4.5.1 configure参数中文注释
只翻译了部分自己会用到的参数,翻译的不好,请见谅转载请注明出处:Koangel使用方式: ./configure [选项]... [VAR=VALUE]...To assign environment variables (e.g., CC, CFLAGS...), specify them asVAR=VALUE. See below for descriptions of so原创 2012-02-06 22:56:54 · 806 阅读 · 0 评论 -
MongoDB C++ 驱动部分问题解决方案(MongoDB C++ Driver)
本文为我长时间开发以及修改MongoDB C++ Driver时的一些问题和解决方案。目前本文所介绍的相关引擎也已经发布闭源版本,请自行下载库版本以及相关位置:http://code.google.com/p/mongodb-cpp-engine/Q & A1、C++版本驱动我们需要另行封装么?A:并非一定要做此类行为,不过如果我们增加和使用一个连接池其稳定性将远远优于原创 2012-06-20 10:36:20 · 1811 阅读 · 3 评论