zoukankan      html  css  js  c++  java
  • Ubuntu 16.04上源码编译Poco并编写cmake文件 | guide to compile and install poco cpp library on ubuntu 16.04

    本文首发于个人博客https://kezunlin.me/post/281dd8cd/,欢迎阅读!

    guide to compile and install poco cpp library on ubuntu 16.04

    Series

    Guide

    apt-get

    install by apt-get, but we can not use find_package(Poco) because no /usr/local/lib/cmake/Poco/PocoConfig.cmake installed.

    sudo apt-get install libpoco-doc libpoco-dev
    

    compile from source

    wget https://pocoproject.org/releases/poco-1.8.1/poco-1.8.1.tar.gz
    
    #Install dependences
    sudo apt-get install openssl libssl-dev
    sudo apt-get install libiodbc2 libiodbc2-dev
    sudo apt-get install libmysqlclient-dev
    
    cd poco-1.8.1
    #sudo ./configure --omit=Data/ODBC,Data/MySQL --no-tests --no-samples --shared
    cd build 
    cmake-gui ..
    sudo make -j8 
    sudo make install 
    

    OK. we install headers to /usr/local/include/Poco and libraries to /usr/local/lib/

    $ ls /usr/local/libPoco*.so 
    
    /usr/local/lib/libPocoFoundation.so  /usr/local/lib/libPocoNet.so   /usr/local/lib/libPocoXML.so
    /usr/local/lib/libPocoJSON.so        /usr/local/lib/libPocoUtil.so
    

    we install cmake files to /usr/local/lib/cmake/Poco

    $ ls /usr/local/lib/cmake/Poco
    
    PocoConfig.cmake                     PocoJSONTargets.cmake          PocoUtilTargets.cmake
    PocoConfigVersion.cmake              PocoJSONTargets-release.cmake  PocoUtilTargets-release.cmake
    PocoFoundationConfig.cmake           PocoNetConfig.cmake            PocoXMLConfig.cmake
    PocoFoundationConfigVersion.cmake    PocoNetConfigVersion.cmake     PocoXMLConfigVersion.cmake
    PocoFoundationTargets.cmake          PocoNetTargets.cmake           PocoXMLTargets.cmake
    PocoFoundationTargets-release.cmake  PocoNetTargets-release.cmake   PocoXMLTargets-release.cmake
    PocoJSONConfig.cmake                 PocoUtilConfig.cmake
    PocoJSONConfigVersion.cmake          PocoUtilConfigVersion.cmake
    

    Example

    CMakeLists.txt

    cmake_minimum_required (VERSION 2.6)
    
    project (event_demo)
    enable_language(C)
    enable_language(CXX)
    
    # Always include the source and build directories in the include path.
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
    
    # Set the output folder where your program will be created
    set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
    set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
    set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
    
    # Find Poco package  1.8.1
    find_package(Poco REQUIRED COMPONENTS Foundation Util Net XML JSON)
    
    # no Poco_INCLUDE_DIRS, we have to set by hand 
    if(MSVC) # WIN32
    	SET(Poco_INCLUDE_DIRS "C:/Program Files/Poco/include")
    else()
    	SET(Poco_INCLUDE_DIRS "/usr/local/include/Poco")
    endif(MSVC)
    
    MESSAGE( [Main] " Poco_INCLUDE_DIRS = ${Poco_INCLUDE_DIRS}")
    MESSAGE( [Main] " Poco_LIBRARIES = ${Poco_LIBRARIES}")
    
    # The following folder will be included
    include_directories(
        ${MY_SRC_INCLUDE}  
        ${Poco_INCLUDE_DIRS} 
    )   
    
    link_directories(${CMAKE_BINARY_DIR}) 
    
    add_executable(event_demo event_demo.cpp)
    target_link_libraries(event_demo ${Poco_LIBRARIES})
    

    Reference

    History

    • 20180222: created.

    Copyright

  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/kezunlin/p/11840504.html
Copyright © 2011-2022 走看看