2011-12-01 3 views
3

Windows 용 lib 파일을 만들려고 시도하는 중입니다. 다음 오류가 발생했습니다. 이 문제에 대해 도움을주십시오.Windows 용 Openssl에서 문제가 발생했습니다.

CODE 설명

실제로 OpenSSL을위한 OBJ 및 dll 파일을 생성합니다 비주얼 스튜디오 명령 prompt.This에 입력이 라인.

X:\dev\openssl>nmake -f ms\ntdll.mak 

lib 및 obj 파일을 가져 오기 위해 make 파일을 실행하기 시작합니다.

Microsoft (R) Program Maintenance Utility Version 8.00.50727.762 
    Copyright (C) Microsoft Corporation. All rights reserved. 

    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86 

    Copyright (C) Microsoft Corporation. All rights reserved. 

    Building OpenSSL 
    cl /Fotmp32dll\err_all.obj -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 -O - DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE /I "C:\Program Files\Microsoft SDKs\Windows\v6.0\Include" /I "C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\INCLUDE" /Zi /Fdtmp32dll/lib -D_WINDLL -DOPENSSL_BUILD_SHLIBCRYPTO -c .\crypto\err\err_all.c 

오류는이 파일에만 적용됩니다.이 파일은 ocsp.h에 포함됩니다.

err_all.c 
    X:\dev\openssl\inc32\openssl/ocsp.h(157) : error C2059: syntax error : 'type' 
    X:\dev\openssl\inc32\openssl/ocsp.h(206) : error C2016: C requires that a struct or union has at least one member 
    X:\dev\openssl\inc32\openssl/ocsp.h(206) : error C2059: syntax error : '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(208) : error C2059: syntax error : '}' 
    X:\dev\openssl\inc32\openssl/ocsp.h(209) : error C2059: syntax error : '}' 
    X:\dev\openssl\inc32\openssl/ocsp.h(350) : error C2016: C requires that a struct or union has at least one member 
    X:\dev\openssl\inc32\openssl/ocsp.h(350) : error C2059: syntax error : '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(352) : error C2059: syntax error : '}' 
    X:\dev\openssl\inc32\openssl/ocsp.h(404) : error C2059: syntax error : 'type' 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2059: syntax error : ',' 
     X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2143: syntax error : missing  ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2143: syntax error : missing '{'  before 'constant' 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2059: syntax error : '<Unknown>' 
    X:\dev\openssl\inc32\openssl/ocsp.h(405) : error C2059: syntax error : ')' 
     X:\dev\openssl\inc32\openssl/ocsp.h(406) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2143: syntax error : missing ')'   before '(' 
     X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2143: syntax error : missing '{' before 'constant' 
    X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2059: syntax error : '<Unknown>' 
     X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(407) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2059: syntax error : ',' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2091: function returns function 
     X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2143: syntax error : missing '{' before 'constant' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2059: syntax error : '<Unknown>' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(409) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2059: syntax error : ',' 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2091: function returns function 
     X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2143: syntax error : missing '{' before 'constant' 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2059: syntax error : '<Unknown>' 
    X:\dev\openssl\inc32\openssl/ocsp.h(416) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(418) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(420) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(420) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(420) : error C2091: function returns function 
X:\dev\openssl\inc32\openssl/ocsp.h(420) : error C2091: function returns function 

    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2143: syntax error : missing ')'   before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\ openssl\inc32\openssl/ocsp.h(425) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2143: syntax error : missing '{' before 'constant' 
    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2059: syntax error : '<Unknown>' 
    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(425) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2091: function returns function 
     X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2143: syntax error : missing '{' before 'constant' 
     X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2059: syntax error : '<Unknown>' 
    X:\dev\openssl\inc32\openssl/ocsp.h(427) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2091: function returns function 
    X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2091: function returns function 
    X:\dev \openssl\inc32\openssl/ocsp.h(428) : error C2143: syntax error : missing '{' before 'constant' 
    X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2059: syntax error : '<Unknown>' 
     X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2059: syntax error : ')' 
     X:\dev\openssl\inc32\openssl/ocsp.h(428) : error C2059: syntax error : ')' 
     X:\dev\openssl\inc32\openssl/ocsp.h(430) : error C2143: syntax error : missing ')' before '(' 
    X:\dev\openssl\inc32\openssl/ocsp.h(430) : error C2143: syntax error : missing ')' before '(' 

    X:\dev\openssl\inc32\openssl/ocsp.h(430) : error C2059: syntax error : '<Unknown>' 
    X:\dev\ openssl\inc32\openssl/ocsp.h(430) : error C2059: syntax error : ')' 
     X:\dev \openssl\inc32\openssl/ocsp.h(435) : error C2059: syntax error : ')' 
    X:\dev\openssl\inc32\openssl/ocsp.h(437) : error C2143: syntax error : missing ')' before '(' 

컴파일

여기 중지 :

 X:\dev\openssl\inc32\openssl/ocsp.h(437) : fatal error C1003: error count exceeds 100; stopping compilation 
    cl : Command line warning D9035 : option 'O' has been deprecated and will be rem 
    oved in a future release 
    NMAKE : fatal error U1077: '"C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\Bin 
    \cl.EXE"' : return code '0x2' 
    Stop. 
+0

nmake 이전에 vcvars32.bat를 실행 했습니까? – SKi

답변

1

이 명령 줄은 MSVS에 OpenSSL을 정적 libs와 구축 I 문제를 호출합니다. 나는 그들이 당신도 호출하고있는 dll makefile을 대체하는 것과 똑같이해야한다고 생각한다.

call "%VS90COMNTOOLS%\vsvars32.bat" 
perl Configure VC-WIN32 
call ms\do_nasm 
nmake -f ms\nt.mak clean 
nmake -f ms\nt.mak 

현재 NASM을 찾을 수 있습니다

0

www.nasm.us은 우선 저도 같은 오류가 발생했습니다. 아마도 처음 제대로 시작하지 않았기 때문일 수 있습니다. 그래서 난 그냥 전체 작업 폴더하려면 openssl-1.0.1e 폴더에 새로운 tar 파일을 추출 삭제

관리자 로 시작 비주얼 스튜디오 2012 명령 프롬프트 (VS2012의 x86 네이티브 도구 ... 프롬프트를 RunAs 관리자 명령) 펄 구성 VC-WIN32 --prefix = C는 경로에 펄과 NASM을 추가 : \ OpenSSL을 콜 MS \ do_nasm nt.mak nmake를 -f MS \

모든 것을 확인 ..

3

는 싸우고있다 Linux에서 MinGW 크로스 컴파일과 동일한 문제 . 사전 처리 된 소스를 보면

문제는 분명하다 :

typedef struct ocsp_request_st 
{ 
OCSP_REQINFO *tbsRequest; 
OCSP_SIGNATURE *optionalSignature; 
} ((LPCSTR) 66) 

struct ocsp_responder_id_st 
{ 
int type; 
union { 
    ((LPCSTR) 7)* byName; 
     ASN1_OCTET_STRING *byKey; 
    } value; 
}; 

어떻게 든 암호화/ossl_typ.h에서 OPENSSL_SYS_WIN32 특정 #undef를 블록은 아무런 영향이없는 것으로 보인다.

는 명시 암호화/ERR/err_all.c에

#include <openssl/ocsp.h> 

전에 수정을

#undef OCSP_REQUEST 
#undef X509_NAME 
#undef OCSP_RESPONSE 

추가.

불행히도 나중에 다른 문제가 발생했습니다 ...

관련 문제