Project Icon

poco

功能丰富的便携式 C++ 组件库

POCO (Portable Components) 是一套功能丰富的 C++ 类库集合,专注于网络中心应用程序开发。该项目提供高效、现代的标准 C++ 实现,支持从嵌入式设备到服务器的多种平台。POCO 补充了 C++ 标准库,采用开源 Boost 软件许可。它为开发者提供实用解决方案,有助于构建高性能、跨平台的应用程序。

替代文本

poco-ci CII最佳实践

POCO(便携式组件)C++库是:

  • 一个C++类库集合,在概念上类似于Java类库或.NET框架。
  • 专注于解决常见实际问题。
  • 专注于"互联网时代"的网络中心应用程序。
  • 使用高效、现代、100%符合ANSI/ISO标准的C++编写。
  • 基于并补充C++标准库/STL。
  • 高度可移植,适用于从嵌入式到服务器的多种不同平台。
  • 开源,采用Boost软件许可证

替代文本

要开始使用POCO,请参阅引导教程入门指南文档。

快速入门(使用CMake)

先决条件

  • CMake 3.5或更高版本
  • 支持C++17的编译器(Visual C++ 2017、GCC 8.0、Clang 5或更新版本)
  • OpenSSL头文件和库(可选,但推荐)
  • MySQL、PostgreSQL和ODBC客户端库(可选)

大多数Unix/Linux系统已预装OpenSSL。如果您的系统没有OpenSSL,请从https://www.openssl.org或其他来源获取。您无需自行构建OpenSSL - 二进制发行版即可。例如,通过Debian APT:

$ apt-get install openssl libssl-dev

在macOS上,安装OpenSSL最简单的方法是通过Homebrew

$ brew install openssl

在Windows上安装OpenSSL最简单的方法是使用二进制(预构建)版本,例如来自Shining Light Productions的Windows安装程序。OpenSSL也可以通过vcpkg包管理器安装。

在Windows上,POCO也可以使用原生Windows TLS API(SChannel)。

安装所有依赖项(Linux和macOS)

所有依赖项可以通过以下命令安装:

Debian Linux(包括Ubuntu和Raspbian)

$ sudo apt-get -y update && sudo apt-get -y install git g++ make cmake libssl-dev libmysqlclient-dev libpq-dev

RedHat Linux

$ sudo yum install -y git gcc-c++ make cmake3 openssl-devel mysql-devel postgresql-devel 

macOS(使用Homebrew)

$ brew install cmake openssl mysql-client libpq

使用CMake构建(Linux、macOS、Windows)

CMake(3.5版或更高版本)是推荐用于构建POCO C++库的构建系统。

$ git clone -b main https://github.com/pocoproject/poco.git
$ cd poco
$ mkdir cmake-build
$ cd cmake-build
$ cmake ..
$ cmake --build . --config Release

在macOS上,需要通过设置OPENSSL_ROOT_DIR CMake变量来告诉CMake在哪里找到OpenSSL头文件和库。例如,如果OpenSSL是通过Homebrew安装的,cmake调用变为:

$ cmake .. -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@3

类似地,可以指定其他外部库的位置:

$ cmake .. -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@3 -DMYSQL_ROOT_DIR=/opt/homebrew/opt/mysql-client -DPostgreSQL_ROOT_DIR=/opt/homebrew/opt/libpq

其他常见的CMake构建方式(如cmake-gui)也可以使用。

还有一些项目特定的CMake变量可以更改。

交叉编译

通过适当的CMake工具链文件(通过CMAKE_TOOLCHAIN_FILE CMake变量指定),POCO C++库可以交叉编译用于嵌入式Linux系统:

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/mytoolchain.cmake -DCMAKE_INSTALL_PREFIX=/path/to/target

安装

POCO C++库的头文件和库可以选择通过构建install目标来安装。

$ sudo cmake --build . --target install

默认安装位置在Linux和macOS上是/usr/local/,在Windows上是C:\Program Files (x64)\,可以通过设置CMAKE_INSTALL_PREFIX CMake变量来覆盖。

构建和安装 - 使用vcpkg

您可以使用vcpkg依赖管理器下载和安装poco:

$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ ./bootstrap-vcpkg.sh
$ ./vcpkg integrate install
$ ./vcpkg install poco

vcpkg中的poco端口由Microsoft团队成员和社区贡献者保持更新。如果版本过时,请在vcpkg仓库上创建问题或拉取请求

构建和安装 - 使用Conan

您可以使用Conan(https://github.com/conan-io/conan)包管理器下载和安装poco。首先需要安装Conan(https://conan.io/downloads.html):

您可以从Conan Center(https://conan.io/center.html)安装Poco库:

$ conan install -r conancenter poco/1.12.0@

或者,您可以下载Poco配方并在本地构建:

$ conan install -r conancenter poco/1.12.0@ --build=poco

Conan Center中的Poco配方和包由Conan团队成员和社区贡献者保持更新。如果版本过时,或者您发现任何错误行为,请在Conan Center Index仓库上创建问题或拉取请求(https://github.com/conan-io/conan-center-index)。

不使用CMake构建

如果您不想或无法使用CMake,POCO也可以使用Visual Studio(包含项目和解决方案文件)或GNU Make(Linux、macOS和其他支持的Unix平台)构建。

请参阅文档以获取更多信息。

通过包管理器获取POCO

POCO也可以通过不同的包管理器获得。

社区和贡献

POCO拥有活跃的用户和贡献社区,请访问我们的网站博客。POCO相关问题的答案也可以在Stack Overflow上找到。

请参阅CONTRIBUTING以提交贡献、错误报告、功能请求或安全问题。

POCO vs. Boost

关于Boost,尽管有一些功能重叠,POCO最好被视为Boost的补充(而不是替代)。并排使用Boost和POCO是非常常见的情况。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号