【问题标题】:Windows solution for openssl/ssl.h no such file?openssl/ssl.h 的 Windows 解决方案没有这样的文件?
【发布时间】:2016-08-04 21:41:29
【问题描述】:

我正在尝试使用 Git CMD 在 Windows 中执行此操作

C:\Users\Ove\paho>git clone https://github.com/eclipse/paho.mqtt.c.git
C:\Users\Ove\paho>cd org.eclipse.paho.mqtt.c.git
C:\Users\Ove\paho>msbuild "Windows Build\Paho C MQTT APIs.sln" /p:Configuration=Release

我被困在 msbuild 那里重复一系列错误:

'openssl/ssl.h': 没有这样的文件或目录

我已经安装了openssl,并且设置了一个环境变量:

C:\OpenSSL-Win32\bin\openssl.cfg

我尝试添加其他系统路径,例如:

C:\Users\Ove\openssl\include\openssl

ssl.h 所在的位置
我还尝试将 openssl 文件夹粘贴在本地 paho\src 文件夹中
但我仍然收到这些错误

【问题讨论】:

    标签: windows git msbuild openssl


    【解决方案1】:

    通过这个提交,你可以看到发生了什么

    https://github.com/eclipse/paho.mqtt.c/commit/543e761474e4836162a0f4428323173abf2de5ad#diff-0d89939d72d5bb4940c5f129d135d9f4

    Windows 和 MSVC 没有任何类型的系统来定位库头文件。所以很自然,这个代码库有自己的系统来定位使用环境变量的 openssl 标头。

    openssl.cfg 看起来像 openssl 自己的操作配置,与构建任何东西完全无关。

    您说您尝试“添加”(这是什么意思?)C:\Users\Ove\openssl\include\openssl(添加到什么?)您说的是“ssl.h”所在的位置。所以呢?您的编译器错误并没有告诉您它缺少 ssl.h。它告诉你它缺少openssl/ssl.h。也许如果您“添加”了C:\Users\Ove\openssl\include,其中确实包含openssl/ssl.h?但我不确定它是如何到达那里的,除非你复制它,让你自己更困惑。

    我会告诉你我会做什么:

    set OpenSSLDir=C:\OpenSSL-Win32\include
    

    如果“openssl 文件夹”是指C:\OpenSSL-Win32\include\openssl 而不是C:\OpenSSL-Win32,则将openssl 文件夹放在paho\src 中可能有效——如果项目已经完成了与-I. 等效的操作,则意味着尝试@来自paho\src\SSLSocket.c 的987654331@ 可以在paho\src\openssl\ssl.h 找到它。但是,您可以看到,该项目还没有做到这一点。因此,您可以将 . 添加为包含路径,并可能使该解决方案起作用;或将代码改为#include "openssl/ssl.h"

    我在这里一直非常冗长,因为您需要了解包含路径的工作原理,然后才能将库放入 Windows 并将它们全部组合起来。没有魔法,只有简单的规则。

    【讨论】:

      猜你喜欢
      • 2018-10-02
      • 2013-07-28
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      • 2011-09-07
      相关资源
      最近更新 更多