从Apache官网上下载qpid源码,我下载的是qpid-cpp-1.39.0.tar.gz

地址: http://www.apache.org/dyn/closer.lua/qpid/cpp/1.39.0/qpid-cpp-1.39.0.tar.gz

[root@localhost sumscope]# wget https://downloads.apache.org/qpid/cpp/1.39.0/qpid-cpp-1.39.0.tar.gz
[root@localhost sumscope]# tar -zxvf qpid-cpp-1.39.0.tar.gz

进入到qpid-cpp-1.39.0目录下,创建新的BLD-opt目录,并且进入到新建的目录中

[root@localhost qpid-cpp-1.39.0]# mkdir BLD-opt
[root@localhost qpid-cpp-1.39.0]# cd BLD-opt/
[root@localhost BLD-opt]#
[root@localhost BLD-opt]# cmake -DCMAKE_BUILD_TYPE=Release ..
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Build type is "Release"
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.5", minimum required is "2.7")
-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.5")
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.27.1")
-- Could NOT find Ruby (missing:  RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE)
-- Found VALGRIND: /usr/bin/valgrind
-- Could NOT find CyrusSASL (missing:  CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
CMake Error at src/CMakeLists.txt:87 (message):
  Can't locate ruby, needed to generate amqp 0-10 framing code.
-- Configuring incomplete, errors occurred!
See also "/opt/sumscope/qpid-cpp-1.39.0/BLD-opt/CMakeFiles/CMakeOutput.log".

出现了错误,是因为有一些依赖没有安装,使用一下的命令把所有的都安装了

[root@localhost BLD-opt]# yum -y install cmake boost-devel libuuid-devel pkgconfig gcc-c++ make ruby help2man doxygen graphviz cyrus-sasl-devel nss-devel nspr-devel xqilla-devel xerces-c-devel ruby ruby-devel swig libdb-cxx-devel libaio-devel db4-devel

依赖 也可以通过查INSTALL文件逐个确定是否需要

之后继续编译:

[root@localhost BLD-opt]# cmake -DCMAKE_BUILD_TYPE=Release ..
[root@localhost BLD-opt]# make all -j4
[root@localhost BLD-opt]# make install

安装完成,查看结果

[root@localhost BLD-opt]# qpidd -v
qpidd (qpid-cpp) version 1.39.0

启动qpid

[root@localhost BLD-opt]# qpidd --auth=no -d --log-source yes --port=5672 --log-thread yes --log-to-file /home/logcker/qpidd.log
[root@localhost BLD-opt]# ps -ef | grep qpidd
root     23114     1  0 17:11 ?        00:00:00 qpidd --auth=no -d --log-source yes --port=5672 --log-thread yes --log-to-file /home/logcker/qpidd.log
root     23137  6331  0 17:12 pts/0    00:00:00 grep --color=auto qpidd
[root@localhost BLD-opt]#
调试makefile,感觉比较好用的一个命令就是make --just-print (及make -n).他们打印makefile的整个流程,可以协助分析 编译 过程. 虽然CMake也产生makefile,来 1, 下载源代码: webkit537.75  :   http://nightly.webkit.org/builds/trunk/src/13      http://nightly.webkit.org/builds/trunk/src/1 比如下载webkit537.75 r166330 29.7 MB 2014-03-27 04:18:26 GMT 编译 过程参考官网:https://www.stack.nl/~dimitri/doxygen/download.html 编译 过程: git clone https://github.com/doxygen/doxygen.git cd doxygen After that you can use mkdir build cd build cmake -G "Unix M... Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议。提供了 Java、C++ 两种服务端版本以及 Java、C++、.NET、Python和Ruby语言的客户端。 其中C++版本的服务器端具备高性能/低消耗以及RDMA支持,可运行于Windows/Linux和Solaris平台;而Java... 最近在看 QPID 首先看下 QPID 是什么,他是个消息队列,用他有什么好处呢 ,可以跨平台使用,比如业务部分用C实现,把需要共享的信息通过 QPID 来传递,然后JAVA侧再从 QPID 接受消息 QPID 官网: http:// qpid .apache.org/download.html JAVA开发的话可以先在官网上下载一个 Java broker, client & tools ... $ ./spout my-queue --content one $ ./spout my-queue --content two $ ./spout my-queue --content three 引子, Qpid 使用场景 通信是一个基本的需求,正如人与人之间需要交流一样,比较大型的软件系统也往往需要内部或者外部通信。 在系统间通信最基础的通信方式是 socket,但 soc 和所有基于Broker总线一样, qpid 本身架构是联邦制的总线集群,这意味着,一份数据需要在多个broker之间互相备份。这个架构是AMQP定义的,本身并没有什么问题,因为AMQP是为交易而生的,对数据准确可靠的要求远远超过对性能的要求。 我们看到在很多公有云中,也经常使用AMQP的另外一个实现RabbitMQ。和 qpid 一样,这两者之间基本可视为等价,知识每个供应商有所偏好,但各项指标...