使用mingw.bat编译openssl-1.0.1c生成dll
2012-12-27 10:36
393 查看
准备工作:
1,下载openssl1.0.1c源码http://www.openssl.org/source/openssl-1.0.1c.tar.gz
2,下载perl,http://downloads.activestate.com/ActivePerl/releases/5.16.1.1601/ActivePerl-5.16.1.1601-MSWin32-x86-296175.msi
3,下载mingw,http://jaist.dl.sourceforge.net/project/mingw/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe
4,安装和解压完上面三项后,配置mingw环境变量(perl会在安装过程中能够自动配置),右键点击“我的电脑”,选择“属性->高级系统设置->高级->环境变量”,从系统变量中选中path,点击编辑,在后面添加C:\MinGW\bin(具体安装路径根据自己的实际路径设置)
修改一处:
修改openssl源码中util\pl\Mingw32.pl,添加一行
$asmtype='gaswin';
可以放在第10行左右
开始编译:
打开cmd,跳转到openssl-1.0.1c目录,运行ms\mingw32.bat,运行完毕后就可以在当前目录看到dll动态库
可能遇到的问题:
1,Can't open perl script "cryptox86cpuid.pl": No such file or directory
mingw32-make: *** [tmp\x86cpuid.asm] Error 2
可以看到是路径中的\字符被忽略掉了,导致该问题的原因可能是环境变量中设置了MinGW\msys\1.0\bin的路径,过段去掉该变量,去掉后问题应该能解决
2,Pick one target type from
elf - Linux, FreeBSD, Solaris x86, etc.
a.out - DJGPP, elder OpenBSD, etc.
coff - GAS/COFF such as Win32 targets
win32n - Windows 95/Windows NT NASM format
nw-nasm - NetWare NASM format
macosx - Mac OS X
遇到该问题,可能是没有修改上方提到的文件,应该在util\pl\Mingw32.pl中添加$asmtype='gaswin';
3,Scalar found where operator expected at util/pl/Mingw32.pl line 11, near "$o"
(Missing semicolon on previous line?)
syntax error at util/pl/Mingw32.pl line 11, near "$o"
Compilation failed in require at util\mk1mf.pl line 188.
遇到该问题,是在添加问题2中所描述内容时,没有在添加内容后加分号导致$asmtype='gaswin';
4,out\libcrypto.a(digest.o):digest.c:(.text+0x5df): undefined reference to `OPENSSL_cleanse'
out\libcrypto.a(rsa_sign.o):rsa_sign.c:(.text+0x1a1): undefined reference to `OPENSSL_cleanse'
遇到该问题时,不要着急,过段删掉openssl-1.0.1c目录,然后重新解压,别忘了在util\pl\Mingw32.pl中添加$asmtype='gaswin';额
如果遇到上述未提及的问题,欢迎交流。。
1,下载openssl1.0.1c源码http://www.openssl.org/source/openssl-1.0.1c.tar.gz
2,下载perl,http://downloads.activestate.com/ActivePerl/releases/5.16.1.1601/ActivePerl-5.16.1.1601-MSWin32-x86-296175.msi
3,下载mingw,http://jaist.dl.sourceforge.net/project/mingw/Installer/mingw-get-inst/mingw-get-inst-20120426/mingw-get-inst-20120426.exe
4,安装和解压完上面三项后,配置mingw环境变量(perl会在安装过程中能够自动配置),右键点击“我的电脑”,选择“属性->高级系统设置->高级->环境变量”,从系统变量中选中path,点击编辑,在后面添加C:\MinGW\bin(具体安装路径根据自己的实际路径设置)
修改一处:
修改openssl源码中util\pl\Mingw32.pl,添加一行
$asmtype='gaswin';
可以放在第10行左右
开始编译:
打开cmd,跳转到openssl-1.0.1c目录,运行ms\mingw32.bat,运行完毕后就可以在当前目录看到dll动态库
可能遇到的问题:
1,Can't open perl script "cryptox86cpuid.pl": No such file or directory
mingw32-make: *** [tmp\x86cpuid.asm] Error 2
可以看到是路径中的\字符被忽略掉了,导致该问题的原因可能是环境变量中设置了MinGW\msys\1.0\bin的路径,过段去掉该变量,去掉后问题应该能解决
2,Pick one target type from
elf - Linux, FreeBSD, Solaris x86, etc.
a.out - DJGPP, elder OpenBSD, etc.
coff - GAS/COFF such as Win32 targets
win32n - Windows 95/Windows NT NASM format
nw-nasm - NetWare NASM format
macosx - Mac OS X
遇到该问题,可能是没有修改上方提到的文件,应该在util\pl\Mingw32.pl中添加$asmtype='gaswin';
3,Scalar found where operator expected at util/pl/Mingw32.pl line 11, near "$o"
(Missing semicolon on previous line?)
syntax error at util/pl/Mingw32.pl line 11, near "$o"
Compilation failed in require at util\mk1mf.pl line 188.
遇到该问题,是在添加问题2中所描述内容时,没有在添加内容后加分号导致$asmtype='gaswin';
4,out\libcrypto.a(digest.o):digest.c:(.text+0x5df): undefined reference to `OPENSSL_cleanse'
out\libcrypto.a(rsa_sign.o):rsa_sign.c:(.text+0x1a1): undefined reference to `OPENSSL_cleanse'
遇到该问题时,不要着急,过段删掉openssl-1.0.1c目录,然后重新解压,别忘了在util\pl\Mingw32.pl中添加$asmtype='gaswin';额
如果遇到上述未提及的问题,欢迎交流。。
相关文章推荐
- 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- 在Windows下使用cl编译器编译生成简单的DLL例程
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- 使用VS在64位平台下编译代码,生成64位dll
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- 由动态库文件dll生成lib库文件(手动生成.def文件,然后使用lib命令编译,非常牛),同理可使用dll生成.a库文件
- VC2005编译SQLite,生成WINCE上使用的DLL和Lib
- openssl证书生成和源码wince编译及其使用
- 本文是关于使用C++调用Matlab编译生成的Dll的说明
- 使用VS编译好的Openssl库生成数字证书
- CSC动态编译,监测文件夹下改变(Windows服务形式),自动编译生成dll供web项目使用
- 让vc编译的zlib生成的dll在BCB以静态链接的方式使用
- VC2005编译SQLite 生成WINCE上使用的DLL和Lib
- 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用
- QuaZip的源码编译和生成DLL后的使用总结
- 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库