为NetBurner进行交叉编译时,为什么GCC不能找到openssl标头?

时间:2014-05-16 14:46:34

标签: openssl cygwin cross-compiling netburner

我正在尝试使用Cygwin下的NetBurner NNDK 2.6.2构建openssl 1.0.1g。我知道这不支持开箱即用,所以我将此行添加到Configure(选项是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 from),openssl-1.0.1g / include / openssl包含一个链接:

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

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

1 个答案:

答案 0 :(得分:2)

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

  

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

     

如果设置为winsymlinks:native或winsymlinks:nativestrict,Cygwin   在文件系统和操作系统上创建符号链接作为本机Windows符号链接   支持他们的版本。如果已知操作系统不支持本机操作系统   符号链接(Windows XP,Windows Server 2003),警告信息是   每次会议产生一次。

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