为什么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头文件的头文件。 您实际上使用那些生成的头文件,而不是此头文件。
它看起来像一个生成头文件的模板。