编译AMQP-CPP

1 cd  ./AMQP-CPP/examples/boost$

2.cmake .

提示boost版本太低,

首先要编译生成boost安装工具bjam
进入boost目录执行:
./bootstrap.sh
然后执行刚生成的
./bjam -s HAVE_ICU=1
编译开始,大约半小时,全部编译结束。
./bjam install --prefix=/usr


3.make
又报错,把日志输到文件中

make -j4 2>~err

发现是要设置C++11编译

在CMakeLists.txt

cmake_minimum_required(VERSION 3.2)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

cmake .

make

完毕。

CMakeLists.txt

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)  
set(Boost_USE_STATIC_RUNTIME OFF) 
find_package(Boost 1.55 REQUIRED COMPONENTS system)

if(NOT Boost_FOUND)
    message( FATAL_ERROR "boost must be installed")
endif()

include_directories(${Boost_INCLUDE_DIRS})

add_library(asio_handler asiohandler.cpp asiohandler.h)
target_link_libraries(asio_handler ${Boost_LIBRARIES})

set(PROGS send
          receive
          new_task
          worker
          emit_log
          receive_logs
          emit_log_direct
          receive_logs_direct
          emit_log_topic
          receive_logs_topic
          rpc_client
          rpc_server
)


find_package (Threads)

foreach(item ${PROGS})
    add_executable(${item} "${item}.cpp")
    target_link_libraries(${item} amqp-cpp
                                  asio_handler
                                  ${CMAKE_THREAD_LIBS_INIT})    
endforeach(item)

#little hack
file(GLOB AMQCPP_HEADERS ${PROJECT_SOURCE_DIR}/include/*)

file(COPY ${AMQCPP_HEADERS}
     DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/amqpcpp)

include_directories(${PROJECT_SOURCE_DIR}
                    ${CMAKE_CURRENT_BINARY_DIR})
     

  

原文地址:https://www.cnblogs.com/chunyou128/p/5238128.html