Poco C++庫是:
- 一系列C++類庫,類似Java類庫,.Net框架,Apple的Cocoa;
- 側重於互聯網時代的網絡應用程序
- 使用高效的,現代的標准ANSI/ISO C++,並基於STL
- 高可移值性,並可在多個平台下可用
- 開源,並使用Boost Software License發布
- 不管是否商用,都完全免費
Poco庫概覽

特性:
- 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.0\VC\bin\amd64\vsvars64.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%\lib\VC
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為例記錄一下編譯過程。在\Data\MySQL文件夾下,找到MySQL_vs100.sln文件,打開。
打開的工程是win32的,需要改為X64。在C++包含目錄中添加本項目的include文件夾,例如:“C:\poco-1.5.1-all\Data\MySQL\include;”,還要添加安裝的MySQL的include文件夾,例如“C:\Program Files\MySQL\MySQL Server 5.6\include”,在庫目錄中添加所需庫的路徑,例如“C:\Program Files\MySQL\MySQL Server 5.6\lib”。
注意:編譯MySQL的Poco庫,必須先安裝MySQL。
設置好環境之后,就可以選擇相應的配置(debug or release)進行編譯。
編譯完成后,生成的庫在Poco根目錄下的lib文件夾,如果是編譯的動態庫,則動態庫在Poco根目錄下的bin文件夾。
