如题所述
Windowsä¸ç¼è¯OpenSSLå¨æåºçæ¹æ³ï¼
1ãå®è£ ActivePerl
åå§åçæ¶å,éè¦ä½¿ç¨perl
2ã使ç¨VSä¸çVisual Studio 20xx Command Promptè¿å ¥æ§å¶å°æ¨¡å¼
3ã解å缩opensslçå ,éè¿cdå½ä»¤åæ¢å°opensslçç®å½
4ãæ§è¡ï¼perl configure VC-WIN32
5ãæ§è¡ï¼ms/do_ms
6ãéæ©ä¸åçç¼è¯ç»æ
1) æ§è¡ï¼nmake -f ms/ntdll.mak
该å½ä»¤çæå¨æåºï¼é»è®¤ä½¿ç¨çæ¯MD
2) æ§è¡ï¼nmake -f ms/nt.mak
该å½ä»¤çæéæåºï¼é»è®¤ä½¿ç¨çæ¯MT
3) æ³çæ使ç¨éæé¾æ¥è¿è¡æ¶åºçå¨æåºåéç¨ä¸é¢æ¹æ³
å¤å¶ä¸ä¸ªntdll.mak并å½å为ntdll_mt.mak,ä¿®æ¹éé¢ç âCFLAG= /MD /Ox ..............â 为/MT ,ç¶åéæ°ç¼è¯ï¼æ§è¡ nmake -f ms/ntdll_mt.mak
4) æ³çæ使ç¨å¨æé¾æ¥è¿è¡æ¶åºçéæåºåéç¨ä¸é¢æ¹æ³
å¤å¶ä¸ä¸ªnt.mak并å½å为nt_md.mak,ä¿®æ¹éé¢ç âCFLAG= /MT /Ox ..............â 为/MD ,ç¶åéæ°ç¼è¯ ï¼æ§è¡ nmake -f ms/nt_md.mak
7.å ¶å®å½ä»¤ï¼
nmake -f ms/ntdll.mak clean // æ¸ é¤ç¼è¯çä¸é´æ件
nmake -f ms/ntdll.mak install // å®è£ ï¼ä¸»è¦æ¯linuxä¸é¢ä¼èªå¨æ¾å°ç¨åºç®å½ä¸ ã
1ãå®è£ ActivePerl
åå§åçæ¶å,éè¦ä½¿ç¨perl
2ã使ç¨VSä¸çVisual Studio 20xx Command Promptè¿å ¥æ§å¶å°æ¨¡å¼
3ã解å缩opensslçå ,éè¿cdå½ä»¤åæ¢å°opensslçç®å½
4ãæ§è¡ï¼perl configure VC-WIN32
5ãæ§è¡ï¼ms/do_ms
6ãéæ©ä¸åçç¼è¯ç»æ
1) æ§è¡ï¼nmake -f ms/ntdll.mak
该å½ä»¤çæå¨æåºï¼é»è®¤ä½¿ç¨çæ¯MD
2) æ§è¡ï¼nmake -f ms/nt.mak
该å½ä»¤çæéæåºï¼é»è®¤ä½¿ç¨çæ¯MT
3) æ³çæ使ç¨éæé¾æ¥è¿è¡æ¶åºçå¨æåºåéç¨ä¸é¢æ¹æ³
å¤å¶ä¸ä¸ªntdll.mak并å½å为ntdll_mt.mak,ä¿®æ¹éé¢ç âCFLAG= /MD /Ox ..............â 为/MT ,ç¶åéæ°ç¼è¯ï¼æ§è¡ nmake -f ms/ntdll_mt.mak
4) æ³çæ使ç¨å¨æé¾æ¥è¿è¡æ¶åºçéæåºåéç¨ä¸é¢æ¹æ³
å¤å¶ä¸ä¸ªnt.mak并å½å为nt_md.mak,ä¿®æ¹éé¢ç âCFLAG= /MT /Ox ..............â 为/MD ,ç¶åéæ°ç¼è¯ ï¼æ§è¡ nmake -f ms/nt_md.mak
7.å ¶å®å½ä»¤ï¼
nmake -f ms/ntdll.mak clean // æ¸ é¤ç¼è¯çä¸é´æ件
nmake -f ms/ntdll.mak install // å®è£ ï¼ä¸»è¦æ¯linuxä¸é¢ä¼èªå¨æ¾å°ç¨åºç®å½ä¸ ã
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-02-06
1、静态编译
./Configure linux-elf-arm -DB_ENDIAN linux:'armeb-linux-gcc -mbig-endian' --prefix=$(pwd)/OpenSSL
a、 将openssl-0.9.8d/crypto/bio/bss_file.c中以下代码注释掉
//#ifndef _FILE_OFFSET_BITS
//#define _FILE_OFFSET_BITS 64
//#endif
#endif
b、 报错没有timeb.h时,在报错的.c文件中#undef TIMEB
c、 去掉openssl顶层Makefile中“build_all:”后面的 build_app build_test (我们要的只是两个静态库libcrypto.a和libssl.a),并去掉”DIRS=”后面的app和tests。
make && make install
2、动态库
1.config:
#config no-asm --prefix=../OpenSSL
2.改Makefile
1) CC= gcc 改成 CC = armeb-linux-gcc;
2) 删除 CFLAG= 中的 “-march=pentium”;
3) AR=ar $(ARFLAGS) r 改为 AR=armeb-linux-ar $(ARFLAGS) r;
4) ARD=ar $(ARFLAGS) d 改为 ARD=armeb-linux-ar $(ARFLAGS) d;
5)RANLIB= /usr/bin/ranlib 改为 RANLIB= armeb-linux-ranlib;
3.编译
#make
#make install本回答被提问者和网友采纳
./Configure linux-elf-arm -DB_ENDIAN linux:'armeb-linux-gcc -mbig-endian' --prefix=$(pwd)/OpenSSL
a、 将openssl-0.9.8d/crypto/bio/bss_file.c中以下代码注释掉
//#ifndef _FILE_OFFSET_BITS
//#define _FILE_OFFSET_BITS 64
//#endif
#endif
b、 报错没有timeb.h时,在报错的.c文件中#undef TIMEB
c、 去掉openssl顶层Makefile中“build_all:”后面的 build_app build_test (我们要的只是两个静态库libcrypto.a和libssl.a),并去掉”DIRS=”后面的app和tests。
make && make install
2、动态库
1.config:
#config no-asm --prefix=../OpenSSL
2.改Makefile
1) CC= gcc 改成 CC = armeb-linux-gcc;
2) 删除 CFLAG= 中的 “-march=pentium”;
3) AR=ar $(ARFLAGS) r 改为 AR=armeb-linux-ar $(ARFLAGS) r;
4) ARD=ar $(ARFLAGS) d 改为 ARD=armeb-linux-ar $(ARFLAGS) d;
5)RANLIB= /usr/bin/ranlib 改为 RANLIB= armeb-linux-ranlib;
3.编译
#make
#make install本回答被提问者和网友采纳