于2016年3月24日更新:

一、安装:

1、从github库下载源码https://github.com/moyangvip/khala

2、Khala采用CMake为build system,安装方法:

 $sudo apt-get install cmake

3、Khala依赖于Boost,Boost安装方式:

  $ sudo apt-get install libboost-dev libboost-test-dev

4、Khala同时依赖于muduo(https://github.com/chenshuo/muduo)和json(jsoncpp-src-0.5.0),在khala/Khala/libs/目录中已经包含其静态库。

5、编译安装方法:

在Khala根目录输入:

  $ ./build.sh

此时将以默认的Debug模式("-O0")编译khala库和它自带的例子,生成的静态库文件(libKhala.a)位于./build/Debug/libs/目录,生成的例子的可执行文件位于./build/Debug/bin/目录。

如果要编译release版,则可以输入:

  $ BUILD_TYPE=release ./build.sh

此时将以Release模式("-O2 -finline-limit=1000 -DNDEBUG") 编译khala库和它自带的例子,生成的静态库文件(libKhala.a)位于./build/release/libs/目录,生成的例子的可执行文件位于./build/release/bin/目录。

如果只想编译khala库,而不编译例子,则输入:

  $ BUILD_NO_EXAMPLES=1 ./build.sh

此时将只编译khala库,生成的静态库文件(libKhala.a)位于./build/Debug/lib/目录。

二、目录结构:

1、Khala的目录结构如下:

khala
|-- License

|-- README

|-- build.sh (安装脚本)

|

|-- Khala (khala框架的主体)
| |-- include (编译khala依赖的头文件:khala本身头文件和muduo、json的头文件)
| |-- src (代码实现)

| |-- libs (依赖的静态库muduo和json)

|
|-- examples 
| |-- HelloKhala (khala的示例)

| | |-- src (示例代码)

| |
| |-- testClient (客户端测试示例)

2、通过./build.sh编译安装后,生成的build目录结构如下:

build

|-- {Debug or Release }

| | -- bin (生成的可执行文件)

| | -- libs (生成的Khala静态库,以及muduo和json的静态库)

| | -- include (静态库的头文件)

三、使用

  在新建的项目中如果希望使用khala库,只需要执行build.sh编译安装后,导入相应的头文件路径( ./build/{Debug or Release }/include/ ),和库文件路径( ./build/{Debug or Release }/libs/ ),并且链接相应的静态库文件 ( -lKhala -lmduo_net -lmuduo_base -ljson -lphread )即可。

2、Khala的安装的更多相关文章

  1. 1、发布C++实现的TCP网络框架Khala

    1.Khala简介 Khala(卡拉)是用C++实现的TCP网络框架.底层采用muduo网络库作为网络IO+线程模型,并封装实现了网络实现与业务逻辑分离的多线程网络框架,具有超时退出.多设备多事件注册 ...

  2. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  3. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  4. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  5. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  6. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  8. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  9. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

随机推荐

  1. Visual C++基础知识(win32exe)

    1.Visual C++简称VC或者VC++ 是一个集成开发环境(编辑器+调试器+编译器) gcc---Linux和Unix的C++编译器 Vc----Windows的C++编译器 2.MFC(Mic ...

  2. 快速搭建Android 开发环境-使用ADT Bundle

    一.搭建Android开发环境 近日要学Android开发基础,就着手搭建Windows下的Android开发环境. 找了一些相关的博文参考,基本上都是要分别下载和安装JDK, Eclipse, An ...

  3. Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

  4. AngularJS 基础教程二:

    5.过滤器 过滤器的主要功能是格式化数据 可以使用Angular提供的过滤器,也可以自定义过滤器 Angular过滤器: currency(货币).date(日期).filter(子串匹配).json ...

  5. BIT_COUNT()和BIT_OR()

    在学习MySQL手册时,看到根据天数计算访问量时,出现了BIT_COUNT()和BIT_OR()两个函数来处理天数计算的问题 所使用的表格信息如下: mysql> select year,mon ...

  6. iotop

    iotop命令是专门显示硬盘IO的命令,界面风格类似top命令.这个命令只有在kernelv2.6.20及以后的版本中才有.   1.直接yum安装,rh6的光盘里有包. yum install io ...

  7. 微软在MSDN中更新了Win8.1批量授权版镜像(中文版更新完毕&版本说明)

    微软在MSDN中更新了Win8.1大客户专业版和企业版镜像,零售版镜像(即专业版+核心版二合一镜像)没有更新,依然是9月份发布的版本.已证实,新的批量授权版镜像是集成了GA Rollup A更新,并且 ...

  8. Keil C51 详细设置

    一.target名更改 打开Keil后,左侧Project Workspace中的target可改,方法:右击Target——Manage Compnents——双击待修改项即可,若要添加,使用对话框 ...

  9. The square chest

    The square chest Sophia pressed the button in front of her, slamming her fist against it. The door r ...

  10. Digit Stack

    Digit Stack In computer science, a stack is a particular kind of data type or collection in which th ...