2

我正在尝试在 Cygwin 下使用 NetBurner NNDK 2.6.2 构建 openssl 1.0.1g。我知道这不支持开箱即用,所以我将此行添加到配置(选项是 openssl 基本“gcc”配置选项和 NNDK 选项的混合 - 不确定这是否有效):

"NetBurner", "m68k-elf-gcc:-v -Wall -Os::(unknown):::BN_LLONG::: -falign-functions=4 -Wno-write-strings -c -fmessage-length=0",

我运行了配置:

Configure NetBurner no-asm no-shared no-threads no-zlib

配置输出没有提到任何错误,并以“为 NetBurner 配置。”结束。然后我运行 make ,它无法构建加密。标头搜索路径(为简洁起见,NNDK 包括省略):

#include "..." search starts here:
#include <...> search starts here:
.
..
../include

这是许多编译器错误中的第一个:

In file included from cryptlib.h:65,
             from cryptlib.c:117:
../e_os.h:62:33: error: openssl/opensslconf.h: No such file or directory
../e_os.h:64:27: error: openssl/e_os2.h: No such file or directory

我没有更改目录结构或从 tarball 中移动文件。openssl-1.0.1g 目录包含 e_os.h(我从中运行 make 的地方),而 openssl-1.0.1g/include/openssl 包含一个链接:

lrwxrwxrwx 1 opensslconf.h -> ../../crypto/opensslconf.h

在这两个级别之后进入加密目录,opensslconf.h 存在。我尝试手动添加-I包含路径到 GCC,但没有运气。

4

1 回答 1

2

这是一个 Cygwin 问题。我的CYGWIN环境变量设置为winsymlinks,根据文档,它为符号链接创建 Windows 快捷方式文件,而不是原生 Windows 符号链接:

winsymlinks:{lnk,native,nativestrict} - 如果设置为仅 winsymlinks 或 winsymlinks:lnk,Cygwin 将创建符号链接作为带有特殊标头和 R/O 属性集的 Windows 快捷方式。

如果设置为 winsymlinks:native 或 winsymlinks:nativestrict,Cygwin 在文件系统和支持它们的操作系统版本上创建符号链接作为本地 Windows 符号链接。如果已知操作系统不支持本机符号链接(Windows XP、Windows Server 2003),则每个会话都会生成一次警告消息。

我将CYGWIN环境变量更改为winsymlinks:native,重新启动 Cygwin,然后再次提取 tarball。现在 Cygwin 符号链接是实际的 Windows 符号链接,预处理器找到了这些文件。

于 2014-05-16T19:07:55.007 回答