WINCE下配置openssl

来源:互联网 发布:linux kill命令 编辑:程序博客网 时间:2024/06/05 05:37

环境:win7 64位, vs2005, wince6

 

一 首先配置好WCECOMPAT


要编译CE版本的OpenSSL的话,需要WCECompat这个库,这个库实现了许多在Desktop开发环境中有而在CE中没有的功能,而这些功能是编译与使用OpenSSL所必需的
它相当于一个第三方的桥梁, 如果你的wince工程中要引用一些第三方的库,比如openssl, cURL等

1 设置环境变量, 把下面的内容保存成一个bat文件,比如script.bat

set OSVERSION=WCE600set TARGETCPU=ARMV4I set PLATFORM=VC-CEset PATH=C:/Program Files (x86)/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;C:/Program Files (x86)/Microsoft Visual Studio 8/VC/bin;C:/Program Files (x86)/Microsoft Visual Studio 8/VC/PlatformSDK/bin;C:/Program Files (x86)/Microsoft Visual Studio 8/Common7/Tools;C:/Program Files (x86)/Microsoft Visual Studio 8/Common7/IDE;C:/Program Files (x86)/Microsoft Visual Studio 8/Common/Tools;C:/Program Files (x86)/Microsoft Visual Studio 8/Common/IDE;C:/Program Files (x86)/Microsoft Visual Studio 8/;$(FrameworkSDKDir)Bin;%PATH%set INCLUDE=C:/Program Files (x86)/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files (x86)/Windows CE Tools/wce600/353_SDK/Include/ARMV4I;C:/Program Files (x86)/Windows CE Tools/wce600/353_SDK/Include;C:/Program Files (x86)/Microsoft Visual Studio 8/VC/ce/atlmfc/include;C:/Program Files (x86)/Microsoft Visual Studio 8/SmartDevices/SDK/SQL Server/Mobile/v3.0set LIB=C:/Program Files (x86)/Windows CE Tools/wce600/353_SDK/Lib/ARMV4I;C:/Program Files (x86)/Microsoft Visual Studio 8/VC/ce/atlmfc/lib/ARMV4I;C:/Program Files (x86)/Microsoft Visual Studio 8/VC/ce/lib/ARMV4Iset WCECOMPAT=C:/wcecompat


这个要根据自己的电脑实际情况配置. 把script.bat随便拷贝到一个目录下,比如c盘根目录. 然后启动Visual Studio 2005命令提示(开始菜单),并运行上面的这个脚本,编译环境就算是准备好了.


2 编译WCECOMPAT


把下载的压缩包解压到c盘根目录, 下载地址:
http://github.com/mauricek/wcecompat/tree/master

 

进到目录下, 修改一个源码文件src/time.c,在其中找到函数_tzset的定义,这是一个空函数,把它整个注释掉(或删掉),不然在后面我们的程序要链接这个库的时候,会报这个函数重复定义的错。

用命令行进到C:\wcecompat目录下, 执行perl config.pl, 生成makefile文件.

然后要手动改一下,删掉或注释掉其中的``src/winmain.cpp \''这一行,不然后面链进我们的程序时会报找不到WinMain所需的main函数这个错.

然后运行命令
C:\wcecompat>nmake

完成之后会在lib目录中生成两个库文件wcecompat.lib和wcecompatex.lib,两个静态链接库。


3 测试

到这里,可以先进行一个初步的测试. 可以建一个2005的wince工程,在additional dependencies里加入上面两个库,并
在additional library directories加入路径C:\wcecompat\lib。
然后编译,应该不会报错.

 

4 编译openssl库

编译wince下面的openssl库非常繁琐,而且我用网上各种方法尝试后,总是有各种各样的错误,始终得不到如下四个文件:

ssleay32.libssleay32.dlllibeay32.liblibeay32.dll


不过好在在csdn上看到有编译好的wince下的这四个文件,下载下来,编译用lib, 运行用dll, 可以用.