找不到Cmake Openssl

时间:2018-05-14 07:24:29

标签: cmake openssl cross-compiling

想要交叉编译使用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编译器相同的文件夹中也无济于事。

我已经完成了尝试这一点的事情,我不明白为什么它不起作用。有什么建议?

2 个答案:

答案 0 :(得分:1)

对于MacO,在安装ton'slite客户端(cmake〜/ lite-client)时遇到相同的错误

解决如下:我已经在“ liteclient-build”目录中打开“ CMakeCache.txt”文件,找到该行

OPENSSL_INCLUDE_DIR:PATH=OPENSSL_INCLUDE_DIR-NOTFOUND

并将其更改为我的openssl位置

OPENSSL_INCLUDE_DIR:PATH=/usr/local/opt/openssl/include

答案 1 :(得分:0)

在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,一切都解决了。逻辑是相同的。

enter image description here