编译wince6.0上的openssl 库

 环境 :VS2005+Perl +EVC4.0+wince6.0

仿照博客:http://blog.csdn.net/sooner01/article/details/4289147(VS2005)

                   http://blog.csdn.net/gy8409/article/details/1148331       (EVC4.0)

     按照EVC博客的编译方法,wince4.0、4.2、5.0编译都没有问题,但仍然有些问题

    1.环境安装 :跟EVC一样,只是3.0换成了4.0,其中EVC的安装

                                               EVC4.0+evc4sp4.exe+Microsoft Pocket PC 2003 SDK.msi

    2.编译:

执行:(在命令行中运行)

> C:/Program Files/Microsoft eMbedded C++ 4.0/EVC/wce420/bin/WCEARMV4.BAT
但运行前要改一下该处理的配置,按自己的配置改(对应自己的)
REM    PLATFORM=POCKET PC 2003
REM        OSVERSION=WCE420
REM        WCEROOT=C:\Windows CE Tools    //Root dir for VCCE
REM        SDKROOT=C:\Windows CE Tools    //Root dir for Pocket PC 2003 SDK
 
set PATH=%WCEROOT%\COMMON\EVC\bin;%WCEROOT%\EVC\%OSVERSION%\bin;C:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;C:\Program Files\Microsoft Visual Studio 8\VC\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Bin;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;%path%

set INCLUDE=%SDKROOT%\%OSVERSION%\%PLATFORM%\include\ARMV4;%SDKROOT%\%OSVERSION%\%PLATFORM%\MFC\include;%SDKROOT%\%OSVERSION%\%PLATFORM%\ATL\include;C:\Program Files\Microsoft Visual Studio 8\VC\ce\include;C:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include;C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\PocketPC2003\Include;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;C:\Program Files\Microsoft Visual Studio 8\VC\include;

set LIB=%SDKROOT%\%OSVERSION%\%PLATFORM%\lib\ARMV4;%SDKROOT%\%OSVERSION%\%PLATFORM%\MFC\lib\ARMV4;%SDKROOT%\%OSVERSION%\%PLATFORM%\ATL\lib\ARMV4;C:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\lib\armv4;C:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4;C:\Program Files\Microsoft Visual Studio 8\VC\lib;C:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Lib\Armv4;
改完后指定wcecompat文件夹的位置(放在c盘根目录以外的位置有在后面的过程中可能会报错):
> set WCECOMPAT=C:/wcecompat           (该wcecompat是下载已经编译好的,后面会说自己怎么编译的)
接着进入openssl安装包目录,例如:C:/openssl-0.9.8a,执行Configure:
> perl Configure VC-CE
然后build makefile:
> ms/do_ms
下面建立静态链接库:
> nmake -f ms/ce.mak
或建立DLL:
> nmake -f ms/cedll.mak
编译openssl的结果保存在../openssl-0.9.8a/out32_ARMV4中,其中有所需的两个LIB或DLL和一些测试的可执行程序。LIB可在visual studio2005下使用。
 
 
二、编译wince6.0下的
1.首先编译wcecompat
从命令行cmd进入到wcecompat目录,输入命令

set OSVERSION=WCE601

set TARGETCPU=ARMV4I

set PLATFORM=VC-CE

perl config.pl

同样也要设置环境

set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;C:/Program Files/Microsoft Visual Studio 8/VC/bin;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/bin;C:/Program Files/Microsoft Visual Studio 8/Common7/Tools;C:/Program Files/Microsoft Visual Studio 8/Common7/IDE;C:/Program Files/Microsoft Visual Studio 8/;$(FrameworkSDKDir)Bin;%PATH%

set INCLUDE=C:/Program Files/Windows CE Tools/wce600/EMU_CHS/Include/Armv4i;C:/Program Files/Windows CE Tools/wce600/EMU_CHS/include;C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/include;C:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/PocketPC2003/Include;C:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/SQL Server/Mobile/v3.0;C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include;C:/Program Files/Microsoft Visual Studio 8/VC/include;%INCLUDE%

set LIB=C:/Program Files/Windows CE Tools/wce600/EMU_CHS/lib/ARMV4I;C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/ARMV4I;C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/ARMV4I; C:/Program Files/Microsoft Visual Studio 8/VC/lib

nmake

生成lib

2.编译OPENSSL

如前面编译4.2一样的。其中.bat文件C:/Program Files/Microsoft eMbedded C++ 4.0/EVC/wce500/bin/WCEARMV4I.BAT

修改改文件(PLATFORM为你自己的wince6.0的SDK)

REM     PLATFORM=EMU_CHS
REM        OSVERSION=WCE600
REM        WCEROOT=C:\Program Files\Microsoft eMbedded C++ 4.0    //Root dir for VCCE
REM        SDKROOT=C:\Program Files\Windows CE Tools 

set PATH=%WCEROOT%\COMMON\EVC\bin;%WCEROOT%\EVC\WCE500\bin;C:\Program Files\Microsoft Visual Studio 8\VC\ce\bin\x86_arm;C:\Program Files\Microsoft Visual Studio 8\VC\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Bin;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;%path%

set INCLUDE=%SDKROOT%\%OSVERSION%\%PLATFORM%\include\ARMV4I;C:\Program Files\Microsoft Visual Studio 8\VC\ce\include;C:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\include;C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\PocketPC2003\Include;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;C:\Program Files\Microsoft Visual Studio 8\VC\include;

set LIB=%SDKROOT%\%OSVERSION%\%PLATFORM%\lib\ARMV4I;C:\Program Files\Microsoft Visual Studio 8\VC\ce\atlmfc\lib\armv4i;C:\Program Files\Microsoft Visual Studio 8\VC\ce\lib\armv4i;C:\Program Files\Microsoft Visual Studio 8\VC\lib;

 其余同上,编译过程中会出现如下错误:

1, Error message:

PTO -c ./crypto/rsa/rsa_pss.c

cl : Command line warning D9002 : ignoring unknown option '/MC'

rsa_pss.c

f:/openssl/openssl98/crypto/rsa/rsa_pss.c(165) : error C2220: warning treated as

  error - no 'object' file generated

f:/openssl/openssl98/crypto/rsa/rsa_pss.c(165) : warning C4748: /GS can not prot

ect parameters and local variables from local buffer overrun because optimizatio

ns are disabled in function

NMAKE : fatal error U1077: '"F:/Program Files/Microsoft Visual Studio 8/VC/ce/bi

n/x86_arm/cl.EXE"' : return code '0x2'

Stop.

 

Solution: Remove the /WX   in cedll.mak

2.找不到winsock.lib时,重新设置lib

set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/ARMV4I;C:/Program Files/Microsoft Visual Studio 8/VC/lib;C:/Program Files/Windows CE Tools/wce600/EMU_CHS/lib/ARMV4I;%LIB%

3. C:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/PocketPC2003/Include/winsock2.h中有很多结构重定义了,注释掉这些结构即可。

编译openssl的结果保存在../openssl-0.9.8a/out32_ARMV4中,其中有所需的两个LIB或DLL和一些测试的可执行程序。LIB可在visual studio2005下使用。

 

后记:

若用vs2005 command prompt,编译后有很多错误,老是无法解决!

而且用EVC的编译也有一些麻烦,不知道编译后的结果是否对,EVC中没有wince600这个文件,所以.bat文件我选用的是wince500中的,对其进行了修改

不知道编译后的库是不是有错,无论如何是编译出来了,但是能否用,还不知道怎么看,望做过的人多交流!

 

 

                               

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值