于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 )即可。

最新文章

  1. (转载)JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
  2. 如何让iOS 保持界面流畅?这些技巧你知道吗
  3. Mvc项目架构分享之项目扩展
  4. javascript三种创建对象的方式
  5. Python读写Redis数据库
  6. TCP释放连接时为什么time_wait状态必须等待2MSL时间
  7. [LeetCode] Rotate Image [26]
  8. JS 去除特定符号(逗号)的方法
  9. nyoj 117 找到的倒数 【树阵】+【分离】
  10. Fileupload-1.2.1使用简单样例
  11. spring调用mongodb
  12. 与apk签名有关的那些概念与命令
  13. JAVA开发环境搭建(Mac)
  14. JavaScript前端开发案例教程第二章练习
  15. EF CodeFirst系列(1)---CodeFirst简单入门
  16. NC 6.X笔记(编辑中)
  17. Enum入门【原】
  18. ActiveMQ_3Java实现
  19. C#在Win10与非Win10 Windows系统鼠标滚动编程的一点区别。
  20. php 中使用include、require、include_once、require_once的区别

热门文章

  1. hdu 1258 DFS
  2. NDK编译Python2.7.5
  3. hdu5322 Hope(dp)
  4. Angularjs 日期格式转换
  5. Android成长记(1)-----android环境搭建与adb shell 命令
  6. C语言一维指针的深入理解
  7. keepalived+httpd 做web服务的高可用
  8. AsEnumrable和AsQueryable的区别
  9. 唯品会安卓版app分析
  10. Verilog 模块参数重定义(转)