在Poco项目的CMake构建中缺少libcrypto.lib。

问题描述 投票:0回答:1

Poco图书馆 可以真的很强大,很有用......但也顽固的很难构建:-( 我现在已经进入了几天的过程,试图从升级。

  • Poco 1.9.0,win32构建,包括NetSSL_OpenSSL和DataMySQL,在Windows 7上,使用MS Visual Studio 2015通过buildwin.cmd脚本从Windows资源管理器成功构建,自2018年4月起

到。

  • Poco 1.10.1,win32和x64构建,包括NetSSL_OpenSSL和DataMySQL(32位)或DataPostgreSQL(64位),在Windows 10上使用MS Visual Studio 2019,通过任何方式构建。

到目前为止,我无法通过任何手段使构建过程在任何重大方向上从我的旧构建向我的新目标让步......除了可能通过CMake。

由于CMake似乎是构建Poco的首选方法,而其他任何方法(例如 buildwin.cmd)都能正常工作,所以我试图重建32位的DLLs,这样我就可以在我的应用程序中用旧的成熟组件进行测试。它看起来很有希望。但是加密构建的过程中出现了抱怨。

LINK : fatal error LNK1104: cannot open file 'libcrypto.lib' [S:\3rdparty\Poco-build32\Crypto\Crypto.vcxproj]

这很奇怪: 在整个... Crypto.vcxproj 文件,根本没有提到libcrypto.lib,只有libcrypto32MD.lib和libcrypto32MDd.lib。它为什么还要找libcrypto.lib呢?即使如此,如果它应该是在寻找libcrypto.lib,为什么当它重新安装在 C:\Program Files (x86)\OpenSSL-Win32\libOPENSSL_ROOT_DIR 设置为 C:\Program Files (x86)\OpenSSL-Win32? 我错过了什么?我是通过。

cmake -HS:\3rdparty\Poco -B S:\3rdparty\Poco-build32 -G "Visual Studio 16 2019" -A win32
cmake --build s:\3rdparty\Poco-build32 --config RelWithDebInfo

更新:为了防止我在尝试用其他方式(buildwin.cmd,Visual Studio中的Batch Build)进行构建时修改了任何东西,我将整个Poco文件结构设置在一边,并解压了一个新鲜的副本。OpenSSL的安装也是新鲜的,没有被破坏。在x64版本中产生了相同的错误......

cmake poco-libraries
1个回答
0
投票

这不是一个直接的答案--这是一个替代的构建路径,已经被证实可以产生可行的DLL。试试吧。

  • 从Visual Studio启动命令行工具
  • 调用vcvars32.bat或vcvars64.bat以确保环境对Win32或x64构建正确。
    • 我在C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build中找到这些脚本。
  • 确保Poco buildwin.cmd脚本被配置为指定OpenSSL include和lib子文件夹的位置。
    • 如果你同时构建32位和64位的版本,你可能需要在两次构建之间修改脚本,因为openSSL-Win32和openSSL-Win64是独立的安装程序。
    • 以同样的方式为其他组件指定include和lib路径(例如MySQL或PostgreSQL等)
  • 编辑Poco的 "组件 "文件,以消除任何不需要的组件,从而停止构建。
  • 调用buildwin,例如:。
    • buildwin 160共享两个Win32样本不测试。
    • buildwin 160共享两个x64样本不测试
© www.soinside.com 2019 - 2024. All rights reserved.