本文首發於我的博客https://kezunlin.me/post/281dd8cd/,歡迎閱讀!html
guide to compile and install poco cpp library on ubuntu 16.04mysql
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
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/Poco
sql
$ 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
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})