• Openssl在wince下的编译


     1.       在wince下编译openssl需要以下几种外界工具
    * Microsoft eMbedded Visual C++ 3.0
    * wcecompat compatibility library (www.essemer.com.au)
    * Optionally ceutils for running automated tests (www.essemer.com.au)
    另外还需要Win32的Perl,如ActiveState Perl(http://www.activestate.com/ActivePerl)
    Wince靠wcecompat来支持openssl,如果有什么问题,查阅http://www.essemer.com.au/windowsce/更新。目前wcecompat的版本是1.1,支持WCE 4.2以及更新的平台,
    2.       编译过程如下:
    1.安装eMebedded Visual C++开发环境,有批处理文件随eVC++一起安装,对于ARMV4处理器,执行:
    > C:Program FilesMicrosoft eMbedded C++ 4.0EVCwce420 inWCEARMV4.BAT
    下一步指定wcecompat文件夹的位置(放在c盘根目录以外的位置有在后面的过程中可能会报错):
    > set WCECOMPAT=C:wcecompat
    接着进入openssl安装包目录,例如:C:openssl-0.9.8a,执行Configure:
    > perl Configure VC-CE
    然后build makefile:
    > msdo_ms
    下面建立静态链接库:
    > nmake -f msce.mak
    或建立DLL:
    > nmake -f mscedll.mak
    如果nmake提示缺少头文件或者LIB文件,有两个原因,一是wcecompat尚未编译形成LIB提供给nmake,二是eVC++设置的环境变量不正确。前者,进入wcecompat目录下执行nmake -f makefile,成功之后,在子目录LIB文件夹下,有wcecompat.lib和wcecompatex.lib两个文件;后者,修改之前执行的WCEARMV4.BAT文件,将SDKROOT目录设置为SDK的安装目录分别在set INCLUDE=后添加;%SDKROOT%%OSVERSION%%PLATFORM%includeEmulator;和set LIB=后添加;%SDKROOT%%OSVERSION%%PLATFORM%libEmulator;保存修改后重新nmake
    编译openssl的结果保存在..openssl-0.9.8aout32_ARMV4中,其中有所需的两个LIB或DLL和一些测试的可执行程序。LIB可在visual studio2005下使用。
    3.       如何使用openssl编译后的结果(仅LIB):
    1)        新建visual studio2005 智能设备项目
    2)        项目->属性->C/C++->附加包含目录,添加wcecompatinclude,openssl-0.9.8ainclude两个目录(根据个人设置补全路径)
    3)        项目->属性->链接器->输入->附加依赖项,添加ssleay32.lib,libeay32.lib,wcecompat.lib,wcecompatex.lib(如果仍不识别,将这四个lib文件拷贝到当前项目目录下)
    4)        编译自己的工程,如果出现:
    a.obj : error LNK2019: unresolved external symbol __security_cookie referenced in function "void __cdecl mymethod(char *)" (?mymethod@@YAXPEAD@Z) a.obj : error LNK2019: unresolved external symbol __security_check_cookie referenced in function "void __cdecl mymethod(char *)" (?mymethod@@YAXPEAD@Z) a.exe : fatal error LNK1120: 2 unresolved externals
    等问题,项目->属性->C/C++->代码生成->缓冲区安全检查,将“是”该为“否(/GS-)”
  • 相关阅读:
    JFreeChart API 说明(转)
    杭电1064
    杭电2734
    杭电1170
    杭电1197
    杭电2629
    杭电1062
    杭电2088
    杭电1205
    杭电1004
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979241.html
Copyright © 2020-2023  润新知