Search code examples
c++makefilecompilationqpid

building from source Qpid Messaging API (C++, bindings) [Qpid C++ 1.37.0] - missing files


I am trying to build from sources Qpid Messaging API (C++, bindings). Build is triggered on RHEL and all prerequisites mentioned on link below are installed.

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

yet when reaching step: make all

what i get is this

error:

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

that would indicate that "Qpid proton-c " might be missing but its installed....

any ideas ?


Solution

  • As stated in the very INSTALL file you provided the link to:

    Note: If Proton is installed in a non-standard location, there are two ways to locate it:

    1. Recommended: use proton 0.7 or later and use the same install prefix for both Proton and Qpid.
    2. Using pkg-config: set the PKG_CONFIG_PATH environment variable to /lib[64]/pkgconfig before running cmake.

    I'd go for method 1 and rebuild Proton specifiyng an install prefix to cmake, this way:

    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
    

    Then use the same prefix for Qpid (i.e. run cmake again, just like the above).