我通过执行以下操作使用MSVC ++ 2013 Express编译器构建了OpenSSL:
C:\OpenSSL\Win64
。cd
- 我已解压缩档案的目录。运行以下命令:
perl Configure VC-WIN64A ms\do_win64a nmake -f ms\ntdll.mak
这完成没有错误(构建了正确的DLL)。然而,发生了一些非常奇怪的事情。如果我打开openssl/ssl.h
,则文件内容为:
../../ssl/ssl.h
由于这显然不是有效的C / C ++,我无法编译任何依赖于OpenSSL头的应用程序,因为上面的问题。我做错了什么?
答案 0 :(得分:2)
duskwuff的comment确实是正确的。问题是7-Zip没有正确提取存档中的符号链接。解决方案是下载GnuWin32's tar
command line utility并使用它来提取存档:
tar -xvf openssl-1.0.1e.tar.gz
答案 1 :(得分:1)
仅openssl/ssl.h
不是这种情况。这就是我看到的几乎所有文件的情况。
我猜这个信息是在构建OpenSSL时使用的,以便在makefile中提到的include文件夹中生成包含文件(对于Windows,它是nt.mak或ntdll.mak)。
如果您生成或构建库,您将在日志中看到头文件正被复制到makefile中提到的文件夹,在那里您将找到看起来像有效C头文件的头文件。实际上你使用那些生成的头文件,而不是这个头文件。
它看起来像是一个用于生成头文件的模板。