• 如何编译POCO


    Poco C++库是:

    • 一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;
    • 侧重于互联网时代的网络应用程序
    • 使用高效的,现代的标准ANSI/ISO C++,并基于STL
    • 高可移值性,并可在多个平台下可用
    • 开源,并使用Boost Software License发布
    • 不管是否商用,都完全免费

    Poco库概览

    Overview

    特性:

    • DynamicAny与Any类
    • Cache框架
    • 基于OpenSSL的密码系统
    • 日期,时间类库
    • 事件和通知框架
    • FTP客户端
    • 跨平台的文件系统类库
    • HTML表单类库
    • HTTP客户端和服务端(支持SSL),C++ 服务器页面编译器
    • 日志框架
    • 多线程框架(线程池,活动对象,工作队列等)
    • POP3客户端类库
    • 跨平台,一次编写,多平台编译和运行
    • 进程管理和进程间通信类库
    • 反射框架
    • 基于PCRE的正则表达式
    • SMTP客户端类库
    • 数据库访问类库(SQLite,MySQL, ODBC)
    • 支持SSL/TLS,基于OpenSSL
    • 动态类库加载
    • 先进的内存和指针管理(Buffer, Pool)
    • Socket类库
    • 网络数据流类库,支持Base64,HexBinary编解码,压缩等等
    • 字符串格式化和其它字符串工具类库
    • TCP服务器框架(多线程)
    • 文本编码和转换
    • Tuples
    • URI支持
    • 支持UTF8和Unicode编码
    • UUID生成器
    • XML生成和解析器
    • Zip文件操作类库

    Poco的使命

    • Poco是一个强大的类库,并易于构建自己的应用程序
    • Poco帮助你创建跨平台的应用程序(一次编写,多平台编译和运行)
    • 模块化和可扩展,可应用于嵌入式到企业级程序
    • 提供全面,易懂的编程接口
    • 使用C++语言,快速且高效
    • Poco崇尚简易
    • 在设计,代码风格和文档上保持一致
    • Poco强调代码质量,包括可读性,综合性,一致性,编码风格和可测试性
    • Poco使得C++编程更加容易

    指导方针

    • 高度关注代码质量,编码风格,一致性,可读性
    • 高度关注测试
    • 注重实用性
    • 基于现有的,可靠的组件开发

    版本历史

    • Summer 2004: Günter Obiltschnig started development
    • February 2005: First release on SourceForge
    • (Release 0.91 under Sleepycat license)
    • May 2005: First contributions by Aleksandar Fabijanic
    • January 2006: Release 1.0
    • March 2006: Release 1.1
    • July 2006: Moved to Boost license, POCO Community Website
    • August 2006: Release 1.2
    • May 2007: Release 1.3
    • July 2010: Stable Release 1.3.7,
    • about 20 contributors, used in 100s of projects

    支持平台

    • Microsoft Windows
    • Linux
    • Mac OS X
    • HP-UX, Solaris, AIX*
    • Embedded Linux (uClibc, glibc)
    • iOS
    • Windows Embedded CE
    • QNX

    Poco应用场景

    • 创建自动化的中间件和设备
    • 工业自动化和工业设备
    • 流量控制系统
    • 健康系统
    • 测量,数据收集和测试系统
    • 消费电子产品和家庭自动化产品
    • 测量
    • 航空交通管理系统
    • VoIP
    • 票务和入口控制系统
    • 包装应用程序

    Poco的优势

    • 全面的,完整的C++框架,可减少开发工作,快速让产品走向市场
    • 易学易使用,以及相当多的示例代码和良好的文档
    • 原生的C++代码,性能优秀,低内存占用
    • 平台无关,一处编写,跨平台编译和运行
      • 大多数情况下,可以开发机上完成开发和调试工作
      • 可以非常容易的迁移到新平台

    编译

    下面简单介绍一下方法,以 vs2010 为例。

    第一种方法:

    (1) Poco 根目录下有build_vs100.cmd和buildwin.cmd这两个批处理文件, 我们得修改一下它们。
        把build_vs100.cmd 修改为以下内容:
        @echo off
        if defined VS100COMNTOOLS (
           call "C:Program Files (x86)Microsoft Visual Studio 10.0VCinamd64vsvars64.bat")
         buildwin 100 build all both x64 samples

    红色的部分是vsvars64.bat的路径,具体要看本机的安装位置。这里因为是要编译X64,所以要修改环境。

    蓝色部分是执行编译时候的参数(注意X64的X要小写)。参数的具体说明为:

    buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
        VS_VERSION:    71|80|90|100|110  
        ACTION:        build|rebuild|clean
        LINKMODE:      static_mt|static_md|shared|all
        CONFIGURATION: release|debug|both
        PLATFORM:      Win32|x64|WinCE
        SAMPLES:       samples|nosamples
        TESTS:         tests|notests
        TOOL:          devenv|vcexpress|msbuild

    具体的参数选择根据需求。

    如果不需要 NetSSL_OpenSSL 和 MySQL ,此时保存后就双击它就行了。 它会自动编译好各种库。
       如果要NetSSL_OpenSSL 这个库则打开buildwin.cmd文件:
       设置 openssl 的路径,如:

    set OPENSSL_DIR=c:OpenSSL-Win64
        set OPENSSL_INCLUDE=%OPENSSL_DIR%include
        set OPENSSL_LIB=%OPENSSL_DIR%lib;%OPENSSL_DIR%libVC
        set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
        set LIB=%LIB%;%OPENSSL_LIB%


       注意,如果要 Poco 中的 MySQL 库 还得安装. Mysql
       编辑好后,双击  build_vs100.cmd执行编译。完成后会在Poco根目录下的lib64中看到编译好的库。在bin64中有编译好的dll。

    第二种方法(适合熟悉命令行的用户)

    按需求修改完buildwin.cmd文件后,使用vs2010的Tools中“Visual Studio x64 Win64 命令提示(2010)”命令,进入命令行状态。转到Poco所在的根目录,直接输入命令:

    buildwin 100 build all both x64 samples

     

    最后需要注意地方:

    上述方法完成编译后,关于Data的MySQL、ODBC、SQLite三个库没有生成(原因不详),需要单独编译,在此以MySQL为例记录一下编译过程。在DataMySQL文件夹下,找到MySQL_vs100.sln文件,打开。

    打开的工程是win32的,需要改为X64。在C++包含目录中添加本项目的include文件夹,例如:“C:poco-1.5.1-allDataMySQLinclude;”,还要添加安装的MySQL的include文件夹,例如“C:Program FilesMySQLMySQL Server 5.6include”,在库目录中添加所需库的路径,例如“C:Program FilesMySQLMySQL Server 5.6lib”。

    注意:编译MySQL的Poco库,必须先安装MySQL。

    设置好环境之后,就可以选择相应的配置(debug or release)进行编译。

    编译完成后,生成的库在Poco根目录下的lib文件夹,如果是编译的动态库,则动态库在Poco根目录下的bin文件夹。

  • 相关阅读:
    原生js ajax与jquery ajax的区别
    ajax的五大步骤
    js中setTimeout()时间参数设置为0的探讨
    js数组与字符串的相互转换方法
    javascript的三个组成部分
    linq 获取不重复数据,重复数据 var unique = arr.GroupBy(o => o).Where(g => g.Count() == 1) .Select(g => g.ElementAt(0));
    C# 随机 抽奖 50个随机码 不重复
    聚集索引和非聚集索引 聚集索引的叶节点就是最终的数据节点,而非聚集索引的叶节仍然是索引节点,但它有一个指向最终数据的指针。
    WPF ControlTemplate,DataTemplate
    C# 实现 奇数偶数排序,奇数在前,偶数在后
  • 原文地址:https://www.cnblogs.com/fuland/p/3768705.html
Copyright © 2020-2023  润新知