【问题标题】:Error while building openssl for windows ce 6.0为 windows ce 6.0 构建 openssl 时出错
【发布时间】:2013-10-25 18:23:18
【问题描述】:

在 Visual Studio 2005 命令提示符下运行命令“nmake -f ms\cedll.mak”时出现以下错误。

cl /Fotmp32dll_x86\b_sock.obj  -Iinc32 -Itmp32dll_x86 /MC /O1i /W3 /GF /
Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -D
L_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOPENSSL_SMALL_FOOTPRINT -D_WIN32_WCE=600 -DUND
ER_CE=600 -DWCE_PLATFORM_VC-CE -Dx86 -D_ -ID:/wcecompat/include -DOPENSSL_NO_RC5
 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGIN
E /Zi /Fdtmp32dll_x86/lib -D_WINDLL -D_DLL  -DOPENSSL_BUILD_SHLIBCRYPTO -c .\cry
pto\bio\b_sock.c
cl : Command line warning D9002 : ignoring unknown option '/MC'
b_sock.c
D:\Program Files\Windows CE Tools\wce600\DO_X86_600\include\x86\winsock.h(764) :
 warning C4005: 'ENAMETOOLONG' : macro redefinition
        D:\wcecompat\include\errno.h(128) : see previous definition of 'ENAMETOO
LONG'
D:\Program Files\Windows CE Tools\wce600\DO_X86_600\include\x86\winsock.h(767) :
 warning C4005: 'ENOTEMPTY' : macro redefinition
        D:\wcecompat\include\errno.h(137) : see previous definition of 'ENOTEMPT
Y'
.\crypto\bio\b_sock.c(195) : warning C4013: 'getservbyname' undefined; assuming
extern returning int
.\crypto\bio\b_sock.c(195) : warning C4047: '=' : 'servent *' differs in levels
of indirection from 'int'
.\crypto\bio\b_sock.c(629) : error C2079: 'sa_in6' uses undefined struct 'sockad
dr_in6'
.\crypto\bio\b_sock.c(776) : error C2224: left of '.sin6_addr' must have struct/
union type
.\crypto\bio\b_sock.c(776) : error C2224: left of '.sin6_addr' must have struct/
union type
.\crypto\bio\b_sock.c(776) : error C2168: 'memset' : too few actual parameters f
or intrinsic function
.\crypto\bio\b_sock.c(777) : error C2224: left of '.sin6_addr' must have struct/
union type
.\crypto\bio\b_sock.c(861) : error C2079: 'sa_in6' uses undefined struct 'sockad
dr_in6'
NMAKE : fatal error U1077: '"D:/Program Files/Microsoft Visual Studio 8/VC/bin\c
l.EXE"' : return code '0x2'
Stop.

【问题讨论】:

  • 你好像没有运行Config。
  • 我尝试了以下顺序 1. perl 配置 VC-CE 2. call .\ms\do_ms.bat 3. nmake -f .\ms\cedll.mak
  • 试试“/D _WIN32_WCE=0x600”,我相信6.0版本应该是这样定义的。

标签: openssl windows-ce


【解决方案1】:

替换

"# if !defined(OPENSSL_NO_SOCK) && defined(_WIN32_WINNT)" with

"# if !defined(OPENSSL_NO_SOCK) && (defined(_WIN32_WINNT) || defined(_WIN32_WCE))" in "openssl-1.0.1e\e_os.h" @ line 273

更多信息 - http://openssl.6102.n7.nabble.com/Windows-CE-VC-CE-Compilation-problem-td45909.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-31
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多