cnats 使用
1. 准备
yum install cmake
yum install gcc gcc-c++
yum install ncurses ncurses-devel
yum install openssl openssl-devel
yum install valgrind
2. get src
git clone git@github.com:nats-io/cnats.git .
3. 编译
用 cmake 编出库
> cd cnats
> mkdir build
> cd build
> cmake ..
也可以为 cmake 指定一些编译选项,比如你想让生成的库不支持 TLS
> cmake .. -DNATS_BUILD_WITH_TLS=OFF
如果之前编译过,需要先
> make clean
或者 删除 build 目录,重新创建 build 目录,执行 cmake
执行 cmake -h 显示cmake 编译参数
如果想修改编译参数,需要编译 cache,然后重新编译
> make edit_cache
默认会编译生成所有target,包括 NATS 静态库、共享库、examples和test程序。位于 build 目录下它们各自的目录:src,examples,test
执行
> make install
将 NATS 静态库和共享库拷贝到 cnats/install/lib ,将 头文件拷贝到 cnats/install/lib/include (install及其子目录会自动创建)
若有安装 valgrind ,可以用它来检测内存
make test ARGS="-T memcheck"
或者,你可以直接调用 ctest 程序
ctest -T memcheck -V -I 1,4
上面的命令会用 valgrind 运行 tests(-T memcheck),用 verbose 输出(-v),从1至4运行tests(-I 1,4)
如果向 test/test.c 里添加一个 test, 需要将它添加到 allTests 数组。包含一个name和该test函数。你可以在任何地方将它添加到 allTests 数组
添加完后重新编译
$ make
[ 44%] Built target nats
[ 88%] Built target nats_static
[ 90%] Built target nats-publisher
[ 92%] Built target nats-queuegroup
[ 94%] Built target nats-replier
[ 96%] Built target nats-requestor
[ 98%] Built target nats-subscriber
Scanning dependencies of target testsuite
[100%] Building C object test/CMakeFiles/testsuite.dir/test.c.o
Linking C executable testsuite
[100%] Built target testsuite
现在通过调用test suite(不添加任何参数) 重新生成 list
$ ./test/testsuite
Number of tests: 77
它列出了添加到list.txt文件中的 tests数量。将该文件放到 源码的test目录
$ mv list.txt ../test/
然后 更新 build
$ cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ivan/cnats/build
可以使用下面的环境变量影响testsuite的行为
正在进行内存检测时,如果发现系统响应非常慢,下面的变量允许testsuite在test过程中调整一些值
export NATS_TEST_VALGRIND=yes
当在versose模式下运行tests,下面的环境变量可以让你在test上看到server(gnatsd)的一些输出。
export NATS_TEST_KEEP_SERVER_OUTPUT=yes
如果想改变可执行文件的名称(gnatsd)或指定一个特定的地方,使用下面环境变量
set NATS_TEST_SERVER_EXE=c:\test\gnatsd.exe
参考:
https://github.com/nats-io/cnats
http://nats-io.github.io/cnats/
cnats 使用的更多相关文章
- NATS—基础介绍
1. 介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开 ...
- 一种开源的分布式消息系统Nats
一种开源的分布式消息系统Nats 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 1.NATS介绍 NATS是一个开源的 ...
- conan-transit服上的库列表
conan-transit服上的库列表 因为获取列表比较慢,所以获取后在此记录,以备查找.conan-transit 是个只读库,不会有更新.新的库将上传到 conan-center. conan是C ...
- NATS_01:NATS基础介绍
1.介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开源 ...
- Mac上使用brew安装Nginx服务器
使用brew安装nginx $ brew install nginx 启动nginx sudo nginx 访问localhost:8080 发现已出现nginx的欢迎页面了.  为方便期间,做个软 ...
随机推荐
- Oracle体系结构之rac内存管理
一.内存管理第一层: 1.memory_target和memory_max_target开启自动内存管理. rac1: SQL> show parameter memory NAME TYPE ...
- mount --bind 的妙用
在固件开发过程中常常遇到这样的情况:为测试某个新功能,必需修改某个系统文件.而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意 ...
- Best Cow Line---poj3617(贪心)
题目链接:http://poj.org/problem?id=3617 题意:有n头牛.刚开始有一个序列.现在想要重新排列.每次从原始的序列头部和尾部取出一个取出一个放到新的序列尾部.最后使得得到的新 ...
- JAVA中只有值传递
今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:“引用传递!”,并且还觉得自己对java的这 ...
- python基础班-淘宝-目录.txt
卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python基础班-淘宝-目录.txt│ ├─1-1 Linux基础│ ├─01-课程简介│ │ 01-课程 ...
- mysql 数据操作 单表查询 目录
mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...
- android奔溃日期一闪而过
Android Studio日期崩溃了一闪而过,看不到原因:可以设置No Filters就可以了
- HashMap(不是线程安全)与ConcurrentHashMap(线程安全)
HashMap不是线程安全的 ConcurrentHashMap是线程安全的 从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心. ...
- 十天精通CSS3(2)
圆角效果 border-radius border-radius是向元素添加圆角边框. 使用方法: border-radius:10px; /* 所有角都使用半径为10px的圆角 */ border- ...
- PHP 接收筛选项包含0的select下拉菜单的处理
这种情况下,PHP的判断方法如下: $where = "1=1"; if ($get['status'] !== '' && $get['status'] !== ...