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

  • 相关阅读:
    spring_three
    报错:java.sql.SQLException: The server
    Spring_two
    Spring_One
    Mybatis中的collection和association一关系
    Mybatis_three
    文件操作1
    面向对象编程三大特征7
    面向对象编程三大特征6
    面向对象编程三大特征5
  • 原文地址:https://www.cnblogs.com/kezunlin/p/11840504.html
Copyright © 2011-2022 走看看