poco mysql 编译_Ubuntu 16.04上源码编译Poco并编写cmake文件

金高轩
2023-12-01

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

Post author: kezunlin

Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

 类似资料: