部分参考:vs2019 分别编译win32和x64的Poco库-CSDN博客
第一:这里细化说明一下,安装Poco库需要先安装openssl,openssl 3.2.0的目录结构和上面文章中提到的目录结构已有变化,所以buildwin.cmd也要做相应调整,我这里是默认安装的openssl,所以buildwin.cmd中添加的内容如下:
set OPENSSL_DIR=C:\Program Files\OpenSSL-Win64
set OPENSSL_INCLUDE=%OPENSSL_DIR%\include
set OPENSSL_LIB=%OPENSSL_DIR%\lib\VC\x64\MD
set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
set LIB=%LIB%;%OPENSSL_LIB%
第二:安装好openssl后,就可以打开vs自带的64位的命令行x64 Native Tools Command Prompt for vs 2019进行编译操作了,该命令行在开始->visual studio 2019目录下
(1).首先在命令行进入下载好的Poco库的根目录,如:cd D:\*\*\*\*\poco
(2)输入"buildwin 160 build shared both x64 samples tests"开始编译
第三:如果中途出现无法解析的错误时,看一下是哪个对象导致的,然后进入到该对象的文件夹下,手动编译一下,一般都是因为openssl的配置导致的
如:在创建PocoNetSSLd.lib或PocoNetSSL.lib对象出现无法解析的错误时,则
(1).进入poco根目录文件夹下NetSSL_OpenSSL目录,用vs 2019打开NetSSL_OpenSSL_vs160.sln
(2).将openssl的头文件目录,如C:\Program Files\OpenSSL-Win64\include添加附加包含目录
(3).将openssl的库目录,如C:\Program Files\OpenSSL-Win64\lib\VC\x64\MD添加到链接库的附加库目录
(4).将openssl.lib、libssl.lib、libcrypto.lib添加到附加依赖项中
(5).然后分别生成debug_shared和release_shared两个版本即可
(6).重新输入"buildwin 160 build shared both x64 samples tests"继续编译,再次遇到无法解析的错误则找到报错的创建对象的文件夹下重复上面的步骤即可,最后就可以成功编译poco了
第四:编译完成后,就可以将Poco生成的库和Poco头文件应用到你的项目中了。64位生成的lib库在Poco根目录的lib64文件夹下,dll文件在bin64目录下;32位的在lib文件夹下,dll在bin目录
第五:如果你采用动态链接库这种方式使用Poco库的话,记得要将你用到的Poco库的dll文件放到Debug或Realse目录下,比如笔者用到的是PocoData64.dll、PocoFoundation64.dll、PocoDataODBC64.dll这几个文件
注意:如果出现链接错误,你又反复检查了库的路径没有问题,而还是频频报链接错误,比如"error LNK2019: 无法解析的外部符号 "public: __cdecl Poco::Data::SessionPool::",那么一定是你的include头文件是旧的,注意将include头文件替换成新的就可以了,【注意你的lib库一定要与你的include是同一版本,有时候由于疏忽很容易犯这种低级错误】,旧版Poco::Data::SessionPool是五个参数,而新版Poco::Data::SessionPool是六个参数,新增了一个int型connTimeout参数