#1 Le 08/03/2014, à 17:38
- akrogames
RabbitMq C++ Wrapper, problème de compilation avec cmake
Bonjour,
J'ai un petit soucis avec un script très simpliste :
#include <iostream>
#include "AMQPcpp.h"
int main () {
try {
AMQP amqp("123123:akalend@localhost:5673/private");
} catch (const std::exception &e) {
}
return 0;
}
J'ai en réalité un soucis au niveau des links car j'ai des undefined reference to `amqp_destroy_connection'. Le wrapper c'est une librairie que j'ai récupérer sur github https://github.com/akalend/amqpcpp car c'est plus pratique en C++.
/usr/local/lib/amqpcpp-master/libamqpcpp.a(AMQP.o): In function `AMQP::~AMQP()':
AMQP.cpp:(.text+0x2ee): undefined reference to `amqp_destroy_connection'
/usr/local/lib/amqpcpp-master/libamqpcpp.a(AMQP.o): In function `AMQP::sockConnect()':
AMQP.cpp:(.text+0x1004): undefined reference to `amqp_new_connection'
AMQP.cpp:(.text+0x102c): undefined reference to `amqp_open_socket'
Mon cmakeList :
# Initialisation de cmake
cmake_minimum_required(VERSION 2.8)
# Project name HAWKS
project(Test)
set(EXECUTABLE_OUTPUT_PATH ../bin/${CMAKE_BUILD_TYPE})
# Boost library Integration
find_package(Boost COMPONENTS system filesystem REQUIRED)
include_directories(${Boost_LIBRARY_DIRS})
link_directories(${Boost_INCLUDE_DIRS})
add_definitions(-DBOOST_ALL_NO_LIB)
#AMQP Wrapper cpp
include_directories(/usr/local/lib/amqpcpp-master/include)
link_directories(/usr/local/lib/amqpcpp-master)
# Link Sources files
file(
GLOB_RECURSE
sources_files
../src/source/*
../src/include/*
)
# Link includes files
include_directories("../src/include")
if(RELEASE)
message(STATUS "--- BUILD DE RELEASE ---")
else()
message(STATUS "--- BUILD DE DEBUG ---")
endif(RELEASE)
# Déclaration de l'executable
add_executable(
test
${sources_files}
)
target_link_libraries(
test
${Boost_LIBRARIES}
pthread
rabbitmq
amqpcpp
)
Je crois qu'en réalité j'ai besoin des fichiers d'entête de rabbitmq mais j'ai déjà installé le paquet librabbitmq-dev alors je ne comprends pas trop.
En vous remerciant par avance.
Pour info les biblio rabbit sont bien là :
$ sudo find /usr/ -name amqp.h
/usr/include/amqp.h
$ sudo find /usr/ -name librabbitmq.so
/usr/lib/x86_64-linux-gnu/librabbitmq.so
Dernière modification par akrogames (Le 08/03/2014, à 17:45)
Hors ligne