mingw编译openssl错误解决

mingw编译openssl错误解决

ID:8803932

大小:37.50 KB

页数:4页

时间:2018-04-08

mingw编译openssl错误解决_第1页
mingw编译openssl错误解决_第2页
mingw编译openssl错误解决_第3页
mingw编译openssl错误解决_第4页
资源描述:

《mingw编译openssl错误解决》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在Windows下用MinGW编译OpenSSL,及OpenSSL静态链接库libcrypto.a使用问题收藏最经我用MinGW编译OpenSSL的过程中发生了很多问题,不过好在已经解决了,现在写出来以备查询以OpenSSL-0.9.8l为例:前略(下载,解压)注意要安装Perl,如果你只是用来安装OpenSSL的可以下ActivePerl,以后还有其它用的下strawberry-perl(先说问题)使用MinGW编译OpenSSL时我发现有以下问题1、解压目录msmingw32.bat内的路径有问题,直接使用会报找

2、不到文件2、编译过程中报错(内容如下).cryptodesset_key.c:68:error:staticdeclarationof'_hide_DES_check_key'followsnon-staticdeclaration.cryptodesset_key.c:68:error:previousdeclarationof'_hide_DES_check_key'washeremingw32-make:***[tmpset_key.o]Error13、其它编译问题(我没有遇到,不过似乎官方有准备)4

3、、使用静态链接库libcrypto.a时libcrypto.a(rand_win.o)(.text+0xb13):rand_win.c:undefinedreferenceto'_CreateDCA@16'libcrypto.a(rand_win.o)(.text+0xb24):rand_win.c:undefinedreferenceto'_CreateCompatibleDC@4'等错误解决法案:一、解决这一种问题方法是将mingw32.bat从解压目录ms下面复制回解压目录下面,即将mingw32.bat放在解压

4、后的OpenSSL的根目录下二、编译过程中出现上述的报错,问题出在解压目录e_os2.h中:264行#defineOPENSSL_IMPLEMENT_GLOBAL(type,name)externtype_hide_##name;type*_shadow_##name(void){return&_hide_##name;}statictype_hide_##name其中的static修饰,解决方法有两个:1、将static修饰删了,不过这样可能会改变原来作者的意图2、这个方法有点麻烦需要修改解压目录e_os2.

5、h解压目录cryptodesenc_read.c解压目录cryptodesset_key.c这三个文件=======================================================================================解压目录e_os2.h:定位第255行(参照句出现的行号,并非需要修改的直接行号)做如下操作,每行前的-号代表删除行,+号代表添加行:Thewayit'sdoneallowsdefinitionslikethis://infoobar.

6、c-OPENSSL_IMPLEMENT_GLOBAL(int,foobar)=0;+OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0)//infoobar.hOPENSSL_DECLARE_GLOBAL(int,foobar);#definefoobarOPENSSL_GLOBAL_REF(foobar)*/#ifdefOPENSSL_EXPORT_VAR_AS_FUNCTION-#defineOPENSSL_IMPLEMENT_GLOBAL(type,name)-externtype_hid

7、e_##name;-type*_shadow_##name(void){return&_hide_##name;}-statictype_hide_##name+#defineOPENSSL_IMPLEMENT_GLOBAL(type,name,value)+type*_shadow_##name(void)+{statictype_hide_##name=value;return&_hide_##name;}#defineOPENSSL_DECLARE_GLOBAL(type,name)type*_shadow

8、_##name(void)#defineOPENSSL_GLOBAL_REF(name)(*(_shadow_##name()))#else-#defineOPENSSL_IMPLEMENT_GLOBAL(type,name)OPENSSL_GLOBALtype_shadow_##name+#defineOPENSS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。