从源代码构建Qpid Messaging API(C ++,绑定)[Qpid C ++ 1.37.0] - 缺少文件

时间:2017-12-07 12:33:12

标签: c++ makefile compilation qpid

我正在尝试从源代码Qpid Messaging API(C++, bindings)构建。 在RHEL上触发构建,并且安装了以下链接中提到的所有先决条件。

https://git-wip-us.apache.org/repos/asf?p=qpid-cpp.git;a=blob_plain;f=INSTALL.txt;hb=HEAD

当达到步骤时:全部

我得到的是这个

错误:

Linking CXX shared library libqpidclient.so
[ 86%] Built target qpidclient
Scanning dependencies of target qpidmessaging
[ 86%] Building CXX object src/CMakeFiles/qpidmessaging.dir/qpid/messaging/amqp/AddressHelper.cpp.o
In file included from /home/m020390/qpid_cpp/qpid-cpp-1.37.0/src/qpid/messaging/amqp/AddressHelper.cpp:22:0:
/home/m020390/qpid_cpp/qpid-cpp-1.37.0/src/qpid/messaging/amqp/PnData.h:27:27: fatal error: proton/engine.h: No such file or directory
 #include <proton/engine.h>
                           ^
compilation terminated.
make[3]: *** [src/CMakeFiles/qpidmessaging.dir/qpid/messaging/amqp/AddressHelper.cpp.o] Error 1
make[2]: *** [src/CMakeFiles/qpidmessaging.dir/all] Error 2
make[1]: *** [examples/messaging/CMakeFiles/client.dir/rule] Error 2
make: *** [client] Error 2

表示&#34; Qpid proton-c&#34;可能会丢失,但已安装......

任何想法?

2 个答案:

答案 0 :(得分:1)

使用这些步骤对我有用。

$ wget http://apache.claz.org/qpid/proton/0.18.1/qpid-proton-0.18.1.tar.gz                                                 
$ tar -xf qpid-proton-0.18.1.tar.gz                                                                                        
$ cd qpid-proton-0.18.1/                                                                                                   
$ mkdir bld                                                                                                                
$ cd bld                                                                                                                   
$ cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/testprefix                                                                          
$ make -j8                                                                                                                 
$ make install                                                                                                             
$ cd ../..                                                                                                                 
$ wget http://apache.claz.org/qpid/cpp/1.37.0/qpid-cpp-1.37.0.tar.gz                                                       
$ tar -xf qpid-cpp-1.37.0.tar.gz                                                                                           
$ cd qpid-cpp-1.37.0/                                                                                                      
$ mkdir bld                                                                                                                
$ cd bld                                                                                                                   
$ cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/testprefix                                                                          
>>>> Here check for "Found Proton" in the cmake output <<<<                                                                                       
$ make -j8                                                                                                                 
$ make install                                                                                                             

检查proton / engine.h是否符合您的想法。在您的情况下,它看起来像是/usr/local/include/proton/engine.h。

您可以使用以下命令查看包含搜索路径的内容。

cpp -v /dev/null -o /dev/null

答案 1 :(得分:0)

如在INSTALL文件中所述,您提供了以下链接:

  

注意:如果Proton安装在非标准位置,则有两个   找到它的方法:

     
      
  1. 推荐:使用质子0.7或更高版本,并为Proton和Qpid使用相同的安装前缀。
  2.   
  3. 使用pkg-config:在运行cmake之前将PKG_CONFIG_PATH环境变量设置为/ lib [64] / pkgconfig。
  4.   

我会选择方法1并重建Proton,为cmake指定一个安装前缀,这样:

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local

然后对Qpid使用相同的前缀(即再次运行cmake,就像上面一样)。