Ubuntu 16.04上源碼編譯Poco並編寫cmake文件 | guide to compile and install poco cpp library on ubuntu 16.04

本文首發於我的博客kezunlin.me/post/281dd8…,歡迎閱讀!html

guide to compile and install poco cpp library on ubuntu 16.04mysql

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.git

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/github

$ 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/Pocosql

$ 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

相關文章
相關標籤/搜索