首页 > 解决方案 > 未找到 Cmake Openssl

问题描述

想要交叉编译使用 Azure IoT SDK 的 C 应用程序,不幸的是需要 Cmake。Cmake 拒绝构建我的工具链,因为它声称它找不到我为我的目标架构编译的 Openssl。

我试过添加OPENSSL_ROOT_DIR到它所在的文件夹中。

SET(OPENSSL_ROOT_DIR /path/to/openssl)

我不断收到错误:

  Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
  system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES) (found
  version "1.0.2g")

我还尝试按照错误提示将系统变量设置为这些文件夹,但它似乎忽略了它们并提示相同的错误。我尝试将它添加到与我的 C 编译器相同的文件夹中也无济于事。

我已经用完了可以尝试的东西,这一点我不明白为什么它不起作用。有什么建议么?

标签: cmakeopensslcross-compiling

解决方案


在 Linux 中,设置 OpenSSL 没有任何问题。

在 Windows 中,我按照下面的说明解决了。

尝试删除CMakeCache.txt文件,然后再做一次。缓存 Cmake 是主要问题。

例如,我做到了cmake . -DOPENSSL_ROOT_DIR=C:\openssl-1.0.2 -DOPENSSL_INCLUDE_DIR=C:\openssl-1.0.2\include -DOPENSSL_CRYPTO_LIBRARY=C:\openssl-1.0.2\crypto,一切都解决了。逻辑是一样的。

在此处输入图像描述


推荐阅读