背景
最近有了解到poco c++库,这里记录下编译及使用过程。
最开始使用的vs studio 2022 和 poco 1.12.4版本编译,不管openssl 使用哪种版本,都会编译报错,最后妥协了。
参考:https://www.bilibili.com/read/cv14165658/
工具:vs studio 2019
一、VS Studio 2019安装
下载地址,选择相应的版本,安装过程这里不赘述。
二、openssl 安装
说明:openssl有两种安装方式:
- 下载源码包,手动编译安装,过程比较麻烦,这里选择第二种;
- 下载地址,当前最新版本是v3.1.1。一路向下即可。
安装完成,默认安装路径:C:\Program Files (x86)\OpenSSL-Win32
三、poco 下载
Github地址,下载完解压。准备进行如下操作:
3.1 修改poco目录下的 buildwin.cmd 文件,加入上面你安装的openssl的路径
set POCO_BASE=%CD% set PATH=%POCO_BASE%\bin64;%POCO_BASE%\bin;%PATH% set OPENSSL_DIR=C:\Program Files (x86)\OpenSSL-Win32 set OPENSSL_INCLUDE=C:\Program Files (x86)\OpenSSL-Win32\include set OPENSSL_LIB=C:\Program Files (x86)\OpenSSL-Win32\lib;C:\Program Files (x86)\OpenSSL-Win32\lib\VC;C:\Program Files (x86)\OpenSSL-Win32\lib\VC\static set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE% set LIB=%LIB%;%OPENSSL_LIB% rem VS_VERSION {140 | 150 | 160} if "%1"=="" goto usage
3.2 修改poco目录下的components 文件
去掉MYSQL 及 postgreSQL,默认会编译对应模块,如果没有安装对应模块会报错。
3.3 编译安装
打开vs studio 2019,在工具栏选择“视图”–>“终端”,进入到解压后的poco目录,vs 2019 对应build_vs160.cmd脚本。
3.3.1 编译报错
(1)xxx sdk 8.1 xxx 解决办法:进如Foundation目录,打开如下项目。
右击“属性” --> “常规”–"Windows SDK 版本选择最新 "即可。注意四个项目都需要做同样的修改。最后关闭项目,点击保存即可。
(2)can’t openssl/ec.h no Such file,没有配置openssl路径。
3.4 等待编译完成
会在poco目录下生成bin和lib文件夹。其中bin目录下是动态库,lib目录下是静态库。
四、poco测试
工具栏“文件”–>“新建”–>“项目” --> “空项目” ,在源文件中新建main.cpp。注意,需要在项目的属性中加入刚才编译出的poco的头文件的路径和依赖库的路径。
#include <Poco/Thread.h> #include <Poco/Runnable.h> #include <iostream> class HelloRunnable : public Poco::Runnable { virtual void run() { std::cout << "Hello, world!" << std::endl; } }; int main(int argc, char** argv) { HelloRunnable runnable; Poco::Thread thread; thread.start(runnable); thread.join(); return 0; }
如果在运行后提示找不到,PocoFoundationd.dll 库,找到该动态库文件,放入执行程序的同一目录下即可。