【问题标题】:building from source Qpid Messaging API (C++, bindings) [Qpid C++ 1.37.0] - missing files从源 Qpid Messaging API (C++, bindings) [Qpid C++ 1.37.0] 构建 - 缺少文件
【发布时间】:2017-12-09 10:15:57
【问题描述】:

我正在尝试从源 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

这表明“Qpid proton-c”可能丢失但已安装....

有什么想法吗?

【问题讨论】:

    标签: c++ makefile compilation qpid


    【解决方案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
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
      

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

      【讨论】:

      • 是的,这正是我所做的。似乎没有帮助。还是一样的问题。
      猜你喜欢
      • 2012-10-23
      • 1970-01-01
      • 2015-03-04
      • 2018-07-12
      • 2016-08-06
      • 2013-07-19
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多