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 使用的更多相关文章

  1. NATS—基础介绍

    1. 介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开 ...

  2. 一种开源的分布式消息系统Nats

    一种开源的分布式消息系统Nats 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 1.NATS介绍 NATS是一个开源的 ...

  3. conan-transit服上的库列表

    conan-transit服上的库列表 因为获取列表比较慢,所以获取后在此记录,以备查找.conan-transit 是个只读库,不会有更新.新的库将上传到 conan-center. conan是C ...

  4. NATS_01:NATS基础介绍

    1.介绍 NATS(Message bus): 从CloudFoundry的总架构图看,位于各模块中心位置的是一个叫nats的组件.NATS是由CloudFoundry的架构师Derek开发的一个开源 ...

  5. Mac上使用brew安装Nginx服务器

    使用brew安装nginx $ brew install nginx 启动nginx sudo nginx 访问localhost:8080 发现已出现nginx的欢迎页面了.  为方便期间,做个软 ...

随机推荐

  1. Oracle Function: NVL

    Description The Oracle/PLSQL NVL function lets you substitute a value when a null value is encounter ...

  2. windows上使用logstash-input-jdbc

    (一)安装logstash 下载链接  选择下载你要的对应的logstash版本,这个东西解压就能使用了 (二)安装logstash-input-jdbc 就是用执行logstash-plugin.b ...

  3. 解决SQL Server管理器无法连接远程数据库的问题(转)

    add by zhj: 本文最后那个数据库别名没搞明白,在我的测试中没有建别名,是可以的.远程登陆时,服务器名称: 服务器IP,端口号 (如223.42.155.248,52134 如果是默认端口号1 ...

  4. 前端(以Vue为例)webpack打包后dist文件包如何部署到django后台中

    由于现在前端使用的三大框架配合webpack可以实现快速打包,为部署到服务端提供了非常大的便利,那么在前端打包后,应该做些什么可以部署到django的后台中呢? 1.打包后文件包dist 进入到 di ...

  5. gulp处理错误

    Gulp 目前的错误处理方式有点操蛋,一旦发生错误进程就挂了,得手动去重启.虽然开发者预期在 gulp 4 中解决此问题 ,但 gulp 4 什么时候发布并没有明确时间表,在此之前,还是很有必要了解一 ...

  6. keepalived的log

    vrrp_script chk_http_port { script "</dev/tcp/127.0.0.1/8088" interval 1 weight -2 } ke ...

  7. springboot中的日志配置

    日志方式:每天日志存放在一个文件中,info和warn日志存放一个文件,error存放一个文件 创建文件 logback-spring.xml <?xml version="1.0&q ...

  8. jquery.dataTables表格中的内容怎么设置让它不自动换行

    在table中增加 style="white-space: nowrap;" ,这样会撑大td.会出现滚动条. 其他内容配置:每列宽度: "aoColumnDefs&qu ...

  9. centos7 设置 静态IP

    centos7 图形设置 yum install NetworkManager-tui #centos7 nmtui edit eth0 #图形设置ip systemctl restart netwo ...

  10. WebService之Axis2 (3):使用services.xml文件发布WebService

    用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中.这 ...