Link to home
Start Free TrialLog in
Avatar of thready
thready

asked on

Build OpenSSL on Visuall C++ 2008

Hi Experts,
Does anyone know how to build OpenSSL with Visual C++ 2008?

Thank you!
Mike
Avatar of davidgeldreich
davidgeldreich
Flag of France image

Hello,

openssl distribution have an INSTALL.W32 file that explains the process of compiling the library/executable under windows.

You will need Visual C++, Masm, Perl (i use ActivePerl), then follow the steps described in the INSTALL.W32 file... it works like a charm.

Best regards.
I was forgetting. You will need to open a visual studio command prompt.

If you open a "normal" command promt (Start | Run | cmd.exe) you will have to run vcvars.bat to setup the visual studio environment variables that will allow you to use the visual tools (nmake, cl, ...) from the command line.

ASKER CERTIFIED SOLUTION
Avatar of jkr
jkr
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of thready
thready

ASKER

Hi davidgeldreich, thanks for your response.  I had tried that - and using MASM I got the following error...  jkr - if you had not specified to use Nasm instead of Masm, I might not have tried that.. So you get most of the points!  -Thanks again - it worked with NASM...

C:\dev\openssl-0.9.8g>nmake -f ms\ntdll.mak

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

Building OpenSSL
        perl util/mkdir-p.pl tmp32dll
created directory `tmp32dll'
        perl util/mkdir-p.pl out32dll
created directory `out32dll'
        perl util/mkdir-p.pl inc32
created directory `inc32'
        perl util/mkdir-p.pl inc32\openssl
created directory `inc32/openssl'
        perl util/copy.pl .\.\e_os.h tmp32dll\e_os.h
Copying: ././e_os.h to tmp32dll/e_os.h
        perl util/copy.pl .\crypto\cryptlib.h tmp32dll\cryptlib.h
Copying: ./crypto/cryptlib.h to tmp32dll/cryptlib.h
        perl util/copy.pl .\crypto\buildinf.h tmp32dll\buildinf.h
Copying: ./crypto/buildinf.h to tmp32dll/buildinf.h
        perl util/copy.pl .\crypto\md32_common.h tmp32dll\md32_common.h
Copying: ./crypto/md32_common.h to tmp32dll/md32_common.h
        perl util/copy.pl .\crypto\o_time.h tmp32dll\o_time.h
Copying: ./crypto/o_time.h to tmp32dll/o_time.h
        perl util/copy.pl .\crypto\o_str.h tmp32dll\o_str.h
Copying: ./crypto/o_str.h to tmp32dll/o_str.h
        perl util/copy.pl .\crypto\o_dir.h tmp32dll\o_dir.h
Copying: ./crypto/o_dir.h to tmp32dll/o_dir.h
        perl util/copy.pl .\crypto\md4\md4_locl.h tmp32dll\md4_locl.h
Copying: ./crypto/md4/md4_locl.h to tmp32dll/md4_locl.h
        perl util/copy.pl .\crypto\md5\md5_locl.h tmp32dll\md5_locl.h
Copying: ./crypto/md5/md5_locl.h to tmp32dll/md5_locl.h
        perl util/copy.pl .\crypto\sha\sha_locl.h tmp32dll\sha_locl.h
Copying: ./crypto/sha/sha_locl.h to tmp32dll/sha_locl.h
        perl util/copy.pl .\crypto\ripemd\rmd_locl.h tmp32dll\rmd_locl.h
Copying: ./crypto/ripemd/rmd_locl.h to tmp32dll/rmd_locl.h
        perl util/copy.pl .\crypto\ripemd\rmdconst.h tmp32dll\rmdconst.h
Copying: ./crypto/ripemd/rmdconst.h to tmp32dll/rmdconst.h
        perl util/copy.pl .\crypto\des\des_locl.h tmp32dll\des_locl.h
Copying: ./crypto/des/des_locl.h to tmp32dll/des_locl.h
        perl util/copy.pl .\crypto\des\rpc_des.h tmp32dll\rpc_des.h
Copying: ./crypto/des/rpc_des.h to tmp32dll/rpc_des.h
        perl util/copy.pl .\crypto\des\spr.h tmp32dll\spr.h
Copying: ./crypto/des/spr.h to tmp32dll/spr.h
        perl util/copy.pl .\crypto\des\des_ver.h tmp32dll\des_ver.h
Copying: ./crypto/des/des_ver.h to tmp32dll/des_ver.h
        perl util/copy.pl .\crypto\rc2\rc2_locl.h tmp32dll\rc2_locl.h
Copying: ./crypto/rc2/rc2_locl.h to tmp32dll/rc2_locl.h
        perl util/copy.pl .\crypto\rc4\rc4_locl.h tmp32dll\rc4_locl.h
Copying: ./crypto/rc4/rc4_locl.h to tmp32dll/rc4_locl.h
        perl util/copy.pl .\crypto\idea\idea_lcl.h tmp32dll\idea_lcl.h
Copying: ./crypto/idea/idea_lcl.h to tmp32dll/idea_lcl.h
        perl util/copy.pl .\crypto\bf\bf_pi.h tmp32dll\bf_pi.h
Copying: ./crypto/bf/bf_pi.h to tmp32dll/bf_pi.h
        perl util/copy.pl .\crypto\bf\bf_locl.h tmp32dll\bf_locl.h
Copying: ./crypto/bf/bf_locl.h to tmp32dll/bf_locl.h
        perl util/copy.pl .\crypto\cast\cast_s.h tmp32dll\cast_s.h
Copying: ./crypto/cast/cast_s.h to tmp32dll/cast_s.h
        perl util/copy.pl .\crypto\cast\cast_lcl.h tmp32dll\cast_lcl.h
Copying: ./crypto/cast/cast_lcl.h to tmp32dll/cast_lcl.h
        perl util/copy.pl .\crypto\aes\aes_locl.h tmp32dll\aes_locl.h
Copying: ./crypto/aes/aes_locl.h to tmp32dll/aes_locl.h
        perl util/copy.pl .\crypto\bn\bn_lcl.h tmp32dll\bn_lcl.h
Copying: ./crypto/bn/bn_lcl.h to tmp32dll/bn_lcl.h
        perl util/copy.pl .\crypto\bn\bn_prime.h tmp32dll\bn_prime.h
Copying: ./crypto/bn/bn_prime.h to tmp32dll/bn_prime.h
        perl util/copy.pl .\crypto\ec\ec_lcl.h tmp32dll\ec_lcl.h
Copying: ./crypto/ec/ec_lcl.h to tmp32dll/ec_lcl.h
        perl util/copy.pl .\crypto\ecdh\ech_locl.h tmp32dll\ech_locl.h
Copying: ./crypto/ecdh/ech_locl.h to tmp32dll/ech_locl.h
        perl util/copy.pl .\crypto\ecdsa\ecs_locl.h tmp32dll\ecs_locl.h
Copying: ./crypto/ecdsa/ecs_locl.h to tmp32dll/ecs_locl.h
        perl util/copy.pl .\crypto\bio\bio_lcl.h tmp32dll\bio_lcl.h
Copying: ./crypto/bio/bio_lcl.h to tmp32dll/bio_lcl.h
        perl util/copy.pl .\crypto\objects\obj_dat.h tmp32dll\obj_dat.h
Copying: ./crypto/objects/obj_dat.h to tmp32dll/obj_dat.h
        perl util/copy.pl .\crypto\x509v3\pcy_int.h tmp32dll\pcy_int.h
Copying: ./crypto/x509v3/pcy_int.h to tmp32dll/pcy_int.h
        perl util/copy.pl .\crypto\conf\conf_def.h tmp32dll\conf_def.h
Copying: ./crypto/conf/conf_def.h to tmp32dll/conf_def.h
        perl util/copy.pl .\crypto\ui\ui_locl.h tmp32dll\ui_locl.h
Copying: ./crypto/ui/ui_locl.h to tmp32dll/ui_locl.h
        perl util/copy.pl .\crypto\store\str_locl.h tmp32dll\str_locl.h
Copying: ./crypto/store/str_locl.h to tmp32dll/str_locl.h
        perl util/copy.pl .\ssl\ssl_locl.h tmp32dll\ssl_locl.h
Copying: ./ssl/ssl_locl.h to tmp32dll/ssl_locl.h
        perl util/copy.pl .\ssl\kssl_lcl.h tmp32dll\kssl_lcl.h
Copying: ./ssl/kssl_lcl.h to tmp32dll/kssl_lcl.h
        perl util/copy.pl .\apps\apps.h tmp32dll\apps.h
Copying: ./apps/apps.h to tmp32dll/apps.h
        perl util/copy.pl .\apps\progs.h tmp32dll\progs.h
Copying: ./apps/progs.h to tmp32dll/progs.h
        perl util/copy.pl .\apps\s_apps.h tmp32dll\s_apps.h
Copying: ./apps/s_apps.h to tmp32dll/s_apps.h
        perl util/copy.pl .\apps\testdsa.h tmp32dll\testdsa.h
Copying: ./apps/testdsa.h to tmp32dll/testdsa.h
        perl util/copy.pl .\apps\testrsa.h tmp32dll\testrsa.h
Copying: ./apps/testrsa.h to tmp32dll/testrsa.h
        perl util/copy.pl .\engines\e_4758cca_err.c tmp32dll\e_4758cca_err.c
Copying: ./engines/e_4758cca_err.c to tmp32dll/e_4758cca_err.c
        perl util/copy.pl .\engines\e_4758cca_err.h tmp32dll\e_4758cca_err.h
Copying: ./engines/e_4758cca_err.h to tmp32dll/e_4758cca_err.h
        perl util/copy.pl .\engines\e_aep_err.c tmp32dll\e_aep_err.c
Copying: ./engines/e_aep_err.c to tmp32dll/e_aep_err.c
        perl util/copy.pl .\engines\e_aep_err.h tmp32dll\e_aep_err.h
Copying: ./engines/e_aep_err.h to tmp32dll/e_aep_err.h
        perl util/copy.pl .\engines\e_atalla_err.c tmp32dll\e_atalla_err.c
Copying: ./engines/e_atalla_err.c to tmp32dll/e_atalla_err.c
        perl util/copy.pl .\engines\e_atalla_err.h tmp32dll\e_atalla_err.h
Copying: ./engines/e_atalla_err.h to tmp32dll/e_atalla_err.h
        perl util/copy.pl .\engines\e_cswift_err.c tmp32dll\e_cswift_err.c
Copying: ./engines/e_cswift_err.c to tmp32dll/e_cswift_err.c
        perl util/copy.pl .\engines\e_cswift_err.h tmp32dll\e_cswift_err.h
Copying: ./engines/e_cswift_err.h to tmp32dll/e_cswift_err.h
        perl util/copy.pl .\engines\e_gmp_err.c tmp32dll\e_gmp_err.c
Copying: ./engines/e_gmp_err.c to tmp32dll/e_gmp_err.c
        perl util/copy.pl .\engines\e_gmp_err.h tmp32dll\e_gmp_err.h
Copying: ./engines/e_gmp_err.h to tmp32dll/e_gmp_err.h
        perl util/copy.pl .\engines\e_chil_err.c tmp32dll\e_chil_err.c
Copying: ./engines/e_chil_err.c to tmp32dll/e_chil_err.c
        perl util/copy.pl .\engines\e_chil_err.h tmp32dll\e_chil_err.h
Copying: ./engines/e_chil_err.h to tmp32dll/e_chil_err.h
        perl util/copy.pl .\engines\e_nuron_err.c tmp32dll\e_nuron_err.c
Copying: ./engines/e_nuron_err.c to tmp32dll/e_nuron_err.c
        perl util/copy.pl .\engines\e_nuron_err.h tmp32dll\e_nuron_err.h
Copying: ./engines/e_nuron_err.h to tmp32dll/e_nuron_err.h
        perl util/copy.pl .\engines\e_sureware_err.c tmp32dll\e_sureware_err.c
Copying: ./engines/e_sureware_err.c to tmp32dll/e_sureware_err.c
        perl util/copy.pl .\engines\e_sureware_err.h tmp32dll\e_sureware_err.h
Copying: ./engines/e_sureware_err.h to tmp32dll/e_sureware_err.h
        perl util/copy.pl .\engines\e_ubsec_err.c tmp32dll\e_ubsec_err.c
Copying: ./engines/e_ubsec_err.c to tmp32dll/e_ubsec_err.c
        perl util/copy.pl .\engines\e_ubsec_err.h tmp32dll\e_ubsec_err.h
Copying: ./engines/e_ubsec_err.h to tmp32dll/e_ubsec_err.h
        perl util/copy.pl .\.\e_os2.h inc32\openssl\e_os2.h
Copying: ././e_os2.h to inc32/openssl/e_os2.h
        perl util/copy.pl .\crypto\crypto.h inc32\openssl\crypto.h
Copying: ./crypto/crypto.h to inc32/openssl/crypto.h
        perl util/copy.pl .\crypto\tmdiff.h inc32\openssl\tmdiff.h
Copying: ./crypto/tmdiff.h to inc32/openssl/tmdiff.h
        perl util/copy.pl .\crypto\opensslv.h inc32\openssl\opensslv.h
Copying: ./crypto/opensslv.h to inc32/openssl/opensslv.h
        perl util/copy.pl .\crypto\opensslconf.h inc32\openssl\opensslconf.h
Copying: ./crypto/opensslconf.h to inc32/openssl/opensslconf.h
        perl util/copy.pl .\crypto\ebcdic.h inc32\openssl\ebcdic.h
Copying: ./crypto/ebcdic.h to inc32/openssl/ebcdic.h
        perl util/copy.pl .\crypto\symhacks.h inc32\openssl\symhacks.h
Copying: ./crypto/symhacks.h to inc32/openssl/symhacks.h
        perl util/copy.pl .\crypto\ossl_typ.h inc32\openssl\ossl_typ.h
Copying: ./crypto/ossl_typ.h to inc32/openssl/ossl_typ.h
        perl util/copy.pl .\crypto\md2\md2.h inc32\openssl\md2.h
Copying: ./crypto/md2/md2.h to inc32/openssl/md2.h
        perl util/copy.pl .\crypto\md4\md4.h inc32\openssl\md4.h
Copying: ./crypto/md4/md4.h to inc32/openssl/md4.h
        perl util/copy.pl .\crypto\md5\md5.h inc32\openssl\md5.h
Copying: ./crypto/md5/md5.h to inc32/openssl/md5.h
        perl util/copy.pl .\crypto\sha\sha.h inc32\openssl\sha.h
Copying: ./crypto/sha/sha.h to inc32/openssl/sha.h
        perl util/copy.pl .\crypto\hmac\hmac.h inc32\openssl\hmac.h
Copying: ./crypto/hmac/hmac.h to inc32/openssl/hmac.h
        perl util/copy.pl .\crypto\ripemd\ripemd.h inc32\openssl\ripemd.h
Copying: ./crypto/ripemd/ripemd.h to inc32/openssl/ripemd.h
        perl util/copy.pl .\crypto\des\des.h inc32\openssl\des.h
Copying: ./crypto/des/des.h to inc32/openssl/des.h
        perl util/copy.pl .\crypto\des\des_old.h inc32\openssl\des_old.h
Copying: ./crypto/des/des_old.h to inc32/openssl/des_old.h
        perl util/copy.pl .\crypto\rc2\rc2.h inc32\openssl\rc2.h
Copying: ./crypto/rc2/rc2.h to inc32/openssl/rc2.h
        perl util/copy.pl .\crypto\rc4\rc4.h inc32\openssl\rc4.h
Copying: ./crypto/rc4/rc4.h to inc32/openssl/rc4.h
        perl util/copy.pl .\crypto\idea\idea.h inc32\openssl\idea.h
Copying: ./crypto/idea/idea.h to inc32/openssl/idea.h
        perl util/copy.pl .\crypto\bf\blowfish.h inc32\openssl\blowfish.h
Copying: ./crypto/bf/blowfish.h to inc32/openssl/blowfish.h
        perl util/copy.pl .\crypto\cast\cast.h inc32\openssl\cast.h
Copying: ./crypto/cast/cast.h to inc32/openssl/cast.h
        perl util/copy.pl .\crypto\aes\aes.h inc32\openssl\aes.h
Copying: ./crypto/aes/aes.h to inc32/openssl/aes.h
        perl util/copy.pl .\crypto\bn\bn.h inc32\openssl\bn.h
Copying: ./crypto/bn/bn.h to inc32/openssl/bn.h
        perl util/copy.pl .\crypto\rsa\rsa.h inc32\openssl\rsa.h
Copying: ./crypto/rsa/rsa.h to inc32/openssl/rsa.h
        perl util/copy.pl .\crypto\dsa\dsa.h inc32\openssl\dsa.h
Copying: ./crypto/dsa/dsa.h to inc32/openssl/dsa.h
        perl util/copy.pl .\crypto\dso\dso.h inc32\openssl\dso.h
Copying: ./crypto/dso/dso.h to inc32/openssl/dso.h
        perl util/copy.pl .\crypto\dh\dh.h inc32\openssl\dh.h
Copying: ./crypto/dh/dh.h to inc32/openssl/dh.h
        perl util/copy.pl .\crypto\ec\ec.h inc32\openssl\ec.h
Copying: ./crypto/ec/ec.h to inc32/openssl/ec.h
        perl util/copy.pl .\crypto\ecdh\ecdh.h inc32\openssl\ecdh.h
Copying: ./crypto/ecdh/ecdh.h to inc32/openssl/ecdh.h
        perl util/copy.pl .\crypto\ecdsa\ecdsa.h inc32\openssl\ecdsa.h
Copying: ./crypto/ecdsa/ecdsa.h to inc32/openssl/ecdsa.h
        perl util/copy.pl .\crypto\buffer\buffer.h inc32\openssl\buffer.h
Copying: ./crypto/buffer/buffer.h to inc32/openssl/buffer.h
        perl util/copy.pl .\crypto\bio\bio.h inc32\openssl\bio.h
Copying: ./crypto/bio/bio.h to inc32/openssl/bio.h
        perl util/copy.pl .\crypto\stack\stack.h inc32\openssl\stack.h
Copying: ./crypto/stack/stack.h to inc32/openssl/stack.h
        perl util/copy.pl .\crypto\stack\safestack.h inc32\openssl\safestack.h
Copying: ./crypto/stack/safestack.h to inc32/openssl/safestack.h
        perl util/copy.pl .\crypto\lhash\lhash.h inc32\openssl\lhash.h
Copying: ./crypto/lhash/lhash.h to inc32/openssl/lhash.h
        perl util/copy.pl .\crypto\rand\rand.h inc32\openssl\rand.h
Copying: ./crypto/rand/rand.h to inc32/openssl/rand.h
        perl util/copy.pl .\crypto\err\err.h inc32\openssl\err.h
Copying: ./crypto/err/err.h to inc32/openssl/err.h
        perl util/copy.pl .\crypto\objects\objects.h inc32\openssl\objects.h
Copying: ./crypto/objects/objects.h to inc32/openssl/objects.h
        perl util/copy.pl .\crypto\objects\obj_mac.h inc32\openssl\obj_mac.h
Copying: ./crypto/objects/obj_mac.h to inc32/openssl/obj_mac.h
        perl util/copy.pl .\crypto\evp\evp.h inc32\openssl\evp.h
Copying: ./crypto/evp/evp.h to inc32/openssl/evp.h
        perl util/copy.pl .\crypto\asn1\asn1.h inc32\openssl\asn1.h
Copying: ./crypto/asn1/asn1.h to inc32/openssl/asn1.h
        perl util/copy.pl .\crypto\asn1\asn1_mac.h inc32\openssl\asn1_mac.h
Copying: ./crypto/asn1/asn1_mac.h to inc32/openssl/asn1_mac.h
        perl util/copy.pl .\crypto\asn1\asn1t.h inc32\openssl\asn1t.h
Copying: ./crypto/asn1/asn1t.h to inc32/openssl/asn1t.h
        perl util/copy.pl .\crypto\pem\pem.h inc32\openssl\pem.h
Copying: ./crypto/pem/pem.h to inc32/openssl/pem.h
        perl util/copy.pl .\crypto\pem\pem2.h inc32\openssl\pem2.h
Copying: ./crypto/pem/pem2.h to inc32/openssl/pem2.h
        perl util/copy.pl .\crypto\x509\x509.h inc32\openssl\x509.h
Copying: ./crypto/x509/x509.h to inc32/openssl/x509.h
        perl util/copy.pl .\crypto\x509\x509_vfy.h inc32\openssl\x509_vfy.h
Copying: ./crypto/x509/x509_vfy.h to inc32/openssl/x509_vfy.h
        perl util/copy.pl .\crypto\x509v3\x509v3.h inc32\openssl\x509v3.h
Copying: ./crypto/x509v3/x509v3.h to inc32/openssl/x509v3.h
        perl util/copy.pl .\crypto\conf\conf.h inc32\openssl\conf.h
Copying: ./crypto/conf/conf.h to inc32/openssl/conf.h
        perl util/copy.pl .\crypto\conf\conf_api.h inc32\openssl\conf_api.h
Copying: ./crypto/conf/conf_api.h to inc32/openssl/conf_api.h
        perl util/copy.pl .\crypto\txt_db\txt_db.h inc32\openssl\txt_db.h
Copying: ./crypto/txt_db/txt_db.h to inc32/openssl/txt_db.h
        perl util/copy.pl .\crypto\pkcs7\pkcs7.h inc32\openssl\pkcs7.h
Copying: ./crypto/pkcs7/pkcs7.h to inc32/openssl/pkcs7.h
        perl util/copy.pl .\crypto\pkcs12\pkcs12.h inc32\openssl\pkcs12.h
Copying: ./crypto/pkcs12/pkcs12.h to inc32/openssl/pkcs12.h
        perl util/copy.pl .\crypto\comp\comp.h inc32\openssl\comp.h
Copying: ./crypto/comp/comp.h to inc32/openssl/comp.h
        perl util/copy.pl .\crypto\engine\engine.h inc32\openssl\engine.h
Copying: ./crypto/engine/engine.h to inc32/openssl/engine.h
        perl util/copy.pl .\crypto\ocsp\ocsp.h inc32\openssl\ocsp.h
Copying: ./crypto/ocsp/ocsp.h to inc32/openssl/ocsp.h
        perl util/copy.pl .\crypto\ui\ui.h inc32\openssl\ui.h
Copying: ./crypto/ui/ui.h to inc32/openssl/ui.h
        perl util/copy.pl .\crypto\ui\ui_compat.h inc32\openssl\ui_compat.h
Copying: ./crypto/ui/ui_compat.h to inc32/openssl/ui_compat.h
        perl util/copy.pl .\crypto\krb5\krb5_asn.h inc32\openssl\krb5_asn.h
Copying: ./crypto/krb5/krb5_asn.h to inc32/openssl/krb5_asn.h
        perl util/copy.pl .\crypto\store\store.h inc32\openssl\store.h
Copying: ./crypto/store/store.h to inc32/openssl/store.h
        perl util/copy.pl .\crypto\pqueue\pqueue.h inc32\openssl\pqueue.h
Copying: ./crypto/pqueue/pqueue.h to inc32/openssl/pqueue.h
        perl util/copy.pl .\crypto\pqueue\pq_compat.h inc32\openssl\pq_compat.h
Copying: ./crypto/pqueue/pq_compat.h to inc32/openssl/pq_compat.h
        perl util/copy.pl .\ssl\ssl.h inc32\openssl\ssl.h
Copying: ./ssl/ssl.h to inc32/openssl/ssl.h
        perl util/copy.pl .\ssl\ssl2.h inc32\openssl\ssl2.h
Copying: ./ssl/ssl2.h to inc32/openssl/ssl2.h
        perl util/copy.pl .\ssl\ssl3.h inc32\openssl\ssl3.h
Copying: ./ssl/ssl3.h to inc32/openssl/ssl3.h
        perl util/copy.pl .\ssl\ssl23.h inc32\openssl\ssl23.h
Copying: ./ssl/ssl23.h to inc32/openssl/ssl23.h
        perl util/copy.pl .\ssl\tls1.h inc32\openssl\tls1.h
Copying: ./ssl/tls1.h to inc32/openssl/tls1.h
        perl util/copy.pl .\ssl\dtls1.h inc32\openssl\dtls1.h
Copying: ./ssl/dtls1.h to inc32/openssl/dtls1.h
        perl util/copy.pl .\ssl\kssl.h inc32\openssl\kssl.h
Copying: ./ssl/kssl.h to inc32/openssl/kssl.h
        perl util/copy.pl ms\applink.c inc32\openssl\applink.c
Copying: ms/applink.c to inc32/openssl/applink.c
        cl /Fotmp32dll\uplink.obj -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN
uplink.c
        cl /Fotmp32dll\cryptlib.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_
cryptlib.c
        cl /Fotmp32dll\mem.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32
mem.c
        cl /Fotmp32dll\mem_clr.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_W
mem_clr.c
        cl /Fotmp32dll\mem_dbg.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_W
mem_dbg.c
        cl /Fotmp32dll\cversion.obj  -Iinc32 -Itmp32dll /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_
cversion.c
.\crypto\cversion.c(105) : error C2220: warning treated as error - no 'object' file generated
.\crypto\cversion.c(105) : warning C4129: 'o' : unrecognized character escape sequence
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : return code '0x2'
Stop.
Avatar of thready

ASKER

NASM instad of MASM was what helped here!  Thank you!
The same issue happen to me.

I realized that the only one mistake you did is when you do the *perl configure*

In file INSTALL.W32 the instruction for configuration is:
perl Configure VC-WIN32 --prefix=c:/some/openssl/dir

If you look at the path for the *prefix* option, you can notice that the path contain *forward* slash (unix style) instead of *backslash* (dos/Windows style).

If by mistake you give a prefix path containing *backslash*, it will produce the C2220/C4129 error/warning when compiling because the *perl configuration* install this path somwhere in header files.

Because your path probably contain c:\....\openssl... the *\o* is interpreted as an escape character by the compiler.

So if you try to configure again with forward slash, I'm pretty sure it's gonnawork for you too.

good luck
Avatar of thready

ASKER

Hi raimic,

Thanks for the response - I did compile it using NASM instead of MASM....  But thanks for noticing where I went wrong! =)

Best,
Mike