为什么openssl / ssl.h只包含相对路径?

我通过执行以下操作使用MSVC ++ 2013 Express编译器构建了OpenSSL:

  • 从这里安装ActivePerl 5.16.3。
  • 抓取openssl-1.0.1e.tar.gz并将其解压缩到C:\OpenSSL\Win64
  • 打开“VS2013 x64交叉工具命令提示符”并cd -ing到我解压缩归档的目录。
  • 运行以下命令:

      perl配置VC-WIN64A
     MS \ do_win64a
     nmake -f ms \ ntdll.mak 

这完成没有错误(构建适当的DLL)。 然而,发生了一些非常奇怪的事情。 如果我打开openssl/ssl.h ,文件的内容是:

 ../../ssl/ssl.h 

由于这显然不是有效的C / C ++,我无法编译任何依赖于OpenSSL头的应用程序,因为上面的问题。 我做错了什么?

duskwuff的评论确实是正确的。 问题是7-Zip没有正确提取存档中的符号链接。 解决方案是下载GnuWin32的tar命令行实用程序并使用它来提取存档:

  tar -xvf openssl-1.0.1e.tar.gz 

这不仅仅是openssl/ssl.h 。 这就是我看到的几乎所有文件的情况。

我想在构建OpenSSL时使用这些信息来生成include文件到makefile中提到的include文件夹(对于Windows,它是nt.mak或ntdll.mak)。

如果您生成或构建库,您将在日志中看到头文件被复制到makefile中提到的文件夹,在那里您将找到看起来像有效C头文件的头文件。 您实际上使用那些生成的头文件,而不是此头文件。

它看起来像一个生成头文件的模板。