Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/03/2014, à 18: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, à 18:45)

Hors ligne