Poco库的学习

一、下载和编译Poco库

参考:www.jianshu.com/p/94c27101eee3
blog.csdn.net/walk_and_think/article/details/82432863

  • 下载地址:https://pocoproject.org/releases/poco-1.9.0/
  • 下载poco-1.9.0-all.zip,其中不带all的是基础版本,只包含基本的poco类库,带all的是全功能版本,包含sqlite,opensll等等。
  • 解压缩zip包后,得到文件。

编译

---- Windows平台下

1、用记事本或UltraEdit打开components文件,添加或删除指定的行即可配置编译哪些模块。不想要openssl和mysql, 删掉openssl和data/mysql即可
例如:
CppUnit
CppUnit/WinTestRunner
Foundation
Encodings
XML
JSON
Util
Net
Zip
=> 只编译基本模块

2、根据Visual Studio版本,在文件夹中直接双击build_vsxxx.cmd文件即可自动编译。
VS2008: build_vs90.cmd
VS2013: build_vs120.cmd
VS2015: build_vs140.cmd
VS2017: build_vs150.cmd

3、本人使用的VS2013因此,双击运行了文件夹中的build_vs120.cmd。之后会自动执行编译脚本,并在当前目录下生成两个文件夹bin和lib。
lib:该文件夹中存放了.lib静态连接库等文件。编译自己写的源代码时需要。
bin:该文件夹中存放了.dll动态链接库等文件。运行编译好的可执行文件时需要。

VS2013下使用Poco库

在Poco1.9.0目录下新建文件夹 include ,把所有的工程下的include的内容合在一起。
设置vs2013的项目属性》C/C++》附加包含目录:D:\poco-1.9.0-release\include (你自己的Poco目录\inlcude )
链接器》附加库目录》D:\poco-1.9.0-release\lib (你自己的Poco目录\lib )
调试》环境:PATH=D:\poco-1.9.0-release\bin;  (你自己的Poco目录\bin; )


以下参考官网文档和例子:https://pocoproject.org/slides/

#include <vector>
#include "Poco/String.h"
#include "Poco/Format.h"
using Poco::cat;
using Poco::format;
int main(int argc, char** argv)
{
    try{
        std::vector<std::string> colors;
        colors.push_back("red");
        colors.push_back("green");
        colors.push_back("blue");
        std::string str;
        str = cat(std::string(", "), colors.begin(), colors.end());
        // "red, green, blue"

        int n = 42;
        std::string s;
        format(s, "The answer to life, the universe and everything is %d", n);
        s = format("%d + %d = %d", 2, 2, 4); // "2 + 2 = 4"
        s = format("%4d", 42);               // "  42"
        s = format("%-4d", 42);              // "42  "
        format(s, "%d", std::string("foo")); // "[ERRFMT]"
    }
    catch (Poco::Exception& e)
    {
        std::string s = e.what();
        s += " " + e.message();
    }

    return 0;
}

原文地址:https://www.cnblogs.com/htj10/p/11380144.html

时间: 2024-12-20 01:30:15

Poco库的学习的相关文章

POCO库——Foundation组件之核心Core

核心Core: Version.h:版本控制信息,宏POCO_VERSION,值格式采用0xAABBCCDD,分别代表主版本.次版本.补丁版本.预发布版本: Poco.h:简单地包含了头文件Foundation.h: Foundation.h:使用其他任何Foundation模块前需要包含的头文件,主要定义库导出宏POCO_DLL.Foundation_API以及自动连接相应配置正确的库引用文件lib:包含库配置文件Config.h: 平台相关的Platform.h以及各个平台相应的文件Plat

POCO库——Foundation组件概述

Foundation组件作为POCO库的基础组件,主要包含了核心Core.缓存Cache.加解密Crypt.日期时间DateTime.动态类型Dynamic.事件events.文件系统Filesystem.哈希Hashing.日志Logging.通告机制Notifications.进程Processes.正则表达式RegularExpression.共享库SharedLibrary.数据流Streams.任务管理Tasks.文本编码Text.线程Threading.统一资源标识符URI.通用唯一

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

gdal库的学习和使用

1.windows下的编译 1.1.解压后打开nmake.opt,设置GDAL_HOME 1.2.进入vs的command promot,进入正常的那个即可,64位的没试过,可以参考gdal官网 1.3.nmake /f makefile.vc 1.4.nmake /f makefile.vc install 1.5.nmake /f makefile.vc devinstall 2.打开文件 #include "gdal_priv.h" #include "cpl_conv

C++的开源跨平台日志库glog学习研究(一)

作为C++领域中为数不多的好用.高效的.跨平台的日志工具,Google的开源日志库glog也算是凤毛麟角了.glog 是一个C++实现的应用级日志记录框架,提供了C++风格的流操作. 恰巧趁着五一我也学习研究了这个glog库,写个总结如下.走过路过的的各位牛人.高手可以忽略这篇文章了. 从code.google.com下载源码(在这里),在Visual Studio 2010中打开工程,如下: 可见只有四个工程,其中libglog和libglog_static分别是Windows下的动态库和静态

C++的开源跨平台日志库glog学习研究(二)--宏的使用

上一篇从整个工程上简单分析了glog,请看C++的开源跨平台日志库glog学习研究(一),这一篇对glog的实现代码入手,比如在其源码中以宏的使用最为广泛,接下来就先对各种宏的使用做一简单分析. 1. 日志输出宏 这里我们以一条最简单的日至输出为例说明: LOG(WARNING) << "This is a warning message"; 这里LOG是一个宏,其定义如下(logging.h line 487): #define LOG(severity) COMPACT

开源的人工神经网络计算库 FANN 学习笔记 1

开源的人工神经网络计算库 FANN 学习笔记 1 这年头机器学习非常的火,神经网络算是机器学习算法中的比较重要的一种.这段时间我也花了些功夫,学了点皮毛,顺便做点学习笔记. 介绍人工神经网络的基本理论的教科书很多.我正在看的是蒋宗礼教授写的<人工神经网络导论>,之所以选这本书,主要是这本比较薄,太厚的书实在是啃不动.这本书写的也比较浅显,用来入门正合适. 看书的同时也在网上找了找人工神经网络的库代码.感觉 FANN 这个库还不错,就顺道学了学这个库的使用方法. FANN 是个开源的 C 语言实

C++的开源跨平台日志库glog学习研究(三)--杂项

在前面对glog分别做了两次学习,请看C++的开源跨平台日志库glog学习研究(一).C++的开源跨平台日志库glog学习研究(二)--宏的使用,这篇再做个扫尾工作,算是基本完成了. 编译期断言 动态断言在调试过程中是一个很重要的手段,而且我们使用的也比较多.相应的,静态断言,也即是编译期断言随着模板编程.元编程的发展,也表现出了动态断言所没有的优势:在编译期完成断言检查,而不是等到运行时! 比如在glog的源码中,有如下代码(logging.h line 908): 1 template <b

thrift c_glib 库序列化学习

thrift c_glib 库序列化学习 最近在项目中需要在不同的语言(c, c++, java, python) 之间传递消息, 模式是 server(C++)需要向订阅者(observer) 发送更新.大致的思路是server侦听某个端口, 然后observer 连接, 然后双方保持连接, 当有更新时, server 将消息下发给observer.由于需要跨语言,所以我们需要一个序列化的库, 项目中之前引入的thrift 正好可以解决, 在需要支持的各种语言中, c语言由于本身没有面向对象,