功夫Panda

记录一些遇到的问题

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年1月25日

摘要: 项目主页:http://clang.llvm.org/安装1.yum/apt-getyum install clangorapt-get install clang2.编译安装所需工具:GCC Python Subversion安装步骤:1.检出源码: LLVM Clang extra-Clang-tools(可选) Compiler-RT2.编译安装:configure && make && make install根据官方文档提供的安装方法,提供一个shell脚本:1.创建一个目录,用于编译安装2.拷贝clang_install.sh至该目录3.进入该目录, 阅读全文
posted @ 2013-01-25 10:46 功夫Panda 阅读(709) 评论(0) 推荐(0) 编辑

2013年1月7日

摘要: 文件描述符fd是Linux相对有限的资源,单个进程中的fd数量有限制,一般默认是1024。查看当前session的fd数量限制# ulimit -n修改当前session的fd数量限制,注意只对当前session有效# ulimit -n your_need程序中可利用系统函数修改fd限制,只对当前进程有效。#include <sys/resource.h>struct rlimit { rlim_t rlim_cur; // soft limit rlim_t rlim_max; // hard limit };// get resource limitint getrli... 阅读全文
posted @ 2013-01-07 16:28 功夫Panda 阅读(9782) 评论(0) 推荐(0) 编辑

2012年11月26日

摘要: cppunit默认安装目录是/usr/local,执行autoreconf -if会报错warning: macro `AM_PATH_CPPUNIT' not found in librarycppunit.m4默认在/usr/local/share/aclocal目录下,但aclocal在/usr/share/aclocal-$VERSION和/usr/share/aclocal两个目录下寻找,aclocal认为cppunit配置安装时使用--prefix=/usr指定了/usr目录,实际上默认是/usr/local/解决方法:1.设置ACLOCALACLOCAL="ac 阅读全文
posted @ 2012-11-26 11:44 功夫Panda 阅读(5128) 评论(0) 推荐(0) 编辑

2012年11月14日

摘要: 编写zookeeper客户端程序出现以下编译错误:/usr/local/include/zookeeper/recordio.h:76: error: expected unqualified-id before ‘__extension__’/usr/local/include/zookeeper/recordio.h:76: error: expected ‘)’ before ‘__extension__’/usr/local/include/zookeeper/recordio.h:76: error: expected unqualified-id before ‘)’ token解 阅读全文
posted @ 2012-11-14 16:01 功夫Panda 阅读(1387) 评论(0) 推荐(0) 编辑

2012年11月13日

摘要: 今天写程序时碰到这个问题:包含了第三方库的头文件,头文件内有如下声明:extern const int ZOO_CREATED_EVENT;变量在.c文件内定义,已被编译到第三方库中。然后我在switch逻辑中用了上面的常量:switch (type) {case ZOO_CREATED_EVENT: ... break;}编译报错如下,‘ZOO_CREATED_EVENT’ cannot appear in a constant-expression比较诧异!经过查阅了解到,编译器构造switch查找表时需要明确其常量值,而extern常量在编译时尚不能明确,所以会报错。暂时使用" 阅读全文
posted @ 2012-11-13 20:03 功夫Panda 阅读(984) 评论(0) 推荐(0) 编辑

2012年11月9日

摘要: 初识ZooKeeper,做一些记录。ZooKeeper提供一个集中式服务,包括配置维护、服务命名、分布式同步、组管理。子服务常用于分布式应用。ZooKeeper体系结构ZooKeeper是开源的用于分布式应用的分布式协调服务。它公开了一组接口,分布式应用可在其基础上实现配置维护、数据同步、服务命名、组管理等上层服务。它采用了类似文件系统的目录树型结构的数据模型。协调服务难于处理,特别容易出错,比如条件竞争和死锁。ZooKeeper的动机是为了减轻分布式应用实现协调服务的负担。zookeeper允许分布式应用通过共享的层次化名字空间进行相互协调。zookeeper在内存中维护数据,访问上具备高吞 阅读全文
posted @ 2012-11-09 19:47 功夫Panda 阅读(20842) 评论(0) 推荐(2) 编辑

2012年11月6日

摘要: 最近公司使用Blade进行自动化编译Blade是腾讯开源的一套自动化编译系统,智能易用项目主页,包括源码包、Wiki等http://code.tencent.com/projects/bladehttp://code.google.com/p/typhoon-blade其设计思想源于Google的一篇文章http://google-engtools.blogspot.hk/2011/08/build-in-cloud-how-build-system-works.html 阅读全文
posted @ 2012-11-06 15:08 功夫Panda 阅读(454) 评论(0) 推荐(0) 编辑

2012年10月19日

摘要: only declarations of constructors can be `explicit'explicit关键字只用于构造函数声明(包括声明即定义)函数模板不能做虚函数 error: templates may not be ‘virtual’static用于类成员函数声明,而非定义。类中的静态数组在类外允许一次性初始化:class A {public: static int arrary[3];}; int A::array[3] = {0, 1, 2};函数的缺省参数写在声明或定义均可,建议写在声明里,方便阅读理解。线程和异常处理的坑很多。。尽量不使用异常处理,尽量不使 阅读全文
posted @ 2012-10-19 17:35 功夫Panda 阅读(753) 评论(0) 推荐(0) 编辑

摘要: 今天在友元类与命名空间结合使用时,遇到一个小问题,总结一下。这样一个场景:A是一个连接类,B是一个客户端类,在不同的命名空间下,在不同的头文件定义,A希望B能够访问到自己的私有成员,所以设置B为其友元类,B类在实例化时,需要用到A类对象进行初始化(构造函数用到A类对象指针)。涉及到了头文件相互包含的问题,头文件中对所需的类类型进行前向声明(forward declaration),然后在.cpp文件中包含该类类型的头文件,详细说明可参考http://www.cnblogs.com/sunrack/articles/590384.html对不同命名空间的类型进行前向声明时,以下列方式声明,使用该 阅读全文
posted @ 2012-10-19 16:43 功夫Panda 阅读(3593) 评论(0) 推荐(0) 编辑

2012年10月15日

摘要: 有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值得一用。1.根据进程号进行查询:# pstree -p 进程号# top -Hp 进程号2.根据进程名字进行查询:#pstree -p `ps -e | grep server | awk '{print $1}'`#pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l这里利用了管道和命令替换,关于命令替换,我也是今天才了解,就是说用``括起来的命令会优先执行,然后以其输出作为其他命令的参数,上述就是用ps -e | grep serve 阅读全文
posted @ 2012-10-15 18:04 功夫Panda 阅读(80519) 评论(0) 推荐(1) 编辑