安装
- 1.简单安装。
简单安装直接使用 ubuntu 的软件仓库的就可以了。centos 下同样的。yum 安装即可。
sudo apt-get install libpoco-doc libpoco-dev
- 2.完整安装(支持数据库)
介绍:想要使用数据库及一些加密功能必须安装完整版的 poco .
官网上已经有介绍了,完整安装需要外部依赖几个库,并且需要编译安装。
.2)安装依赖(centos 下yum install openssl-devel …. 来满足依赖)
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install unixodbc
sudo apt-get install unixodbc-dev
sudo apt-get install libmysqlclient*
Foundation 库
SharedLibrary 模块
SharedLibrary 的功能一句话可以概括,在运行时动态的加载库和库内的类。也就是
说 SharedLibrary 提供了一个架构或者是约定,供库使用方和库提供方使用。只要满足了模
块约定,就可以快速实现调用。
对于库的调用来说,导出函数和导出类是基本的功能,windows 和 Linux 下具是如
此,因此 SharedLibrary 也必须实现此功能
导出函数
- 代码结构
- src/test_poco.cpp
#include <Poco/SharedLibrary.h>
#include <iostream>
using Poco::SharedLibrary;
typedef void (*HelloFunc)(); // function pointer type
int main(int argc, char** argv) {
std::string path("/mnt/d/ubuntu_workplace/poco_l/lib/libTestLibrary");
path.append(SharedLibrary::suffix()); // adds ".dll" or ".so"
std::cout << SharedLibrary::suffix() << std::endl;
SharedLibrary library(path); // will also load the library
HelloFunc func = (HelloFunc)library.getSymbol("hello");
func();
library.unload();
return 0;
}
- src/CMakeLists.txt
include_directories(
./
${Poco_INCLUDE_DIRS}
)
message(${Poco_INCLUDE_DIRS})
add_executable(test_poco test_poco.cpp)
target_link_libraries(test_poco
${Poco_LIBRARIES}
)
- lib/testlib.cpp
#include <iostream>
#define LIBRARY_API
extern "C" void LIBRARY_API hello();
void hello() { std::cout << "Hello, world!" << std::endl; }
- lib/CMakeLists.txt
aux_source_directory(. DIR_LIB_SRCS)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
add_library(TestLibrary SHARED ${DIR_LIB_SRCS})
- 根目录下CMakeLists.txt
cmake_minimum_required(VERSION 2.80)
project(poco)
SET(Poco_DIR /usr/lib/)
SET(Poco_INCLUDE_DIRS /usr/include/Poco)
SET(Poco_LIBRARIES /usr/lib/libPocoFoundation.so)
add_subdirectory(src)
add_subdirectory(lib)
- 输出结果