社区
C语言
帖子详情
openssl的问题
studentinfoa
2008-04-07 10:04:15
公司需要用到openssl,但是只有vs05这个工具,怎么用vs05编译openssl工程,各位谁会阿,求助,哭死了
...全文
534
8
打赏
收藏
openssl的问题
公司需要用到openssl,但是只有vs05这个工具,怎么用vs05编译openssl工程,各位谁会阿,求助,哭死了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhou1xp
2012-04-14
打赏
举报
回复
顶一下
studentinfoa
2008-04-07
打赏
举报
回复
5l的朋友,d:\some\openssl\dir
这个dir文件夹并不存在阿,怎么回事呢?
ryfdizuo
2008-04-07
打赏
举报
回复
up
world007
2008-04-07
打赏
举报
回复
这里是vs2003的,但是2005应该也差不多吧,你看看
1。前期准备
1)下载ActivePerlWin32版本
下载地址:http://www.activestate.com/ActivePerl
我下载的不是安装包,是压缩包,在ActivePerl里叫AS package,版本是:ActivePerl 5.8.8.819。
下载后,解压到D:\ActivePerl,备用。
2)下载OpenSSL
下载地址:http://www.openssl.org/
我下载的版本为:openssl-0.9.8d
下载后,解压到D:\OpenSSL,备用。
3)下载微软的汇编编译器MASM
下载地址:我是在80x86汇编小站上去下载的。注意不要下载到MASM32的去了。地址是:
http://www.x86asm.com/DisplayArticle.asp?BoardID=8&ArticleID=63
版本是:6.11
下载后解压到D:\masm,备用。
4)要求要安装有VC++的编译器,我安装的是2003版本的。
2。开始编译
1)从开始-->Microsoft Visual Studio .NET 2003-->Visual Studio .NET 工具-->Visual Studio .NET 2003 命令提示进入命令行,因为从这里进去后,和C++相关的环境变量都已经设置好了。
2)设置环境变量
1.设置ActivePerl的环境变量
在命令行窗口执行:
>set path=%path%;D:\ActivePerl\perl\bin
这里的D:\ActivePerl\perl\bin要和你实际的安装位置对应,下同。
2.设置MASM的环境变量
在命令行窗口中执行:
>set path=%path%;D:\masm\bin
3)生成
1.转到OpenSSL的目录下面去,初始化一下,可能像:
>cd D:\OpenSSL
>perl Configure VC-WIN32 --prefix=d:\some\openssl\dir
这里的d:\some\openssl\dir是在安装的时候要用到的,现在我们不讲安装,但还是要执行这一步。不然最后一步的编译有问题。
2.生成汇编
>ms\do_masm
3.生成DLL
>nmake -f ms\ntdll.mak
在经历了漫长的编译过程后。
如果成功的话,你就会在OpenSSL的out32dll下看到一些dll和exe文件了。
好运。
Supper_Jerry
2008-04-07
打赏
举报
回复
编译器使用VC++6.0,根据它的说明,我进行了如下的命令和操作:
1.安装ActivePerl-5.6.1.629-MSWin32-x86-multi-thread.顺利通过!
2.打开控制台程序,在openssl解压后的目录下执行Perl Configure VC-WIN32命令,注意,一定要在这个目录下执行该命令,否则找不到Configure文件,当然,你也可以指定完整的Configure文件路径。顺利通过。
3.根据openssl的帮助说明,在解压目录下执行ms\do_masm(和ms_\do_ms)命令,成功通过。
4.配置VC环境变量,我在相同的控制台程序下转到VC所在目录下的vc98\bin目录,执行vcvars32批处理命令,设置VC的环境变量,然后再转到openssl解压包的根目录下。
注意:我第一次运行Vcvars32的时候,报错,错误为:Out of environment space,这个错误的产生是因为你的MS-DOS环境变量没有分配足够的内存,这可以通过如下方法解决:
a.点击开始, 点击运行.
b.输入sysedit后回车运行该程序.
c.然后会出现多个窗口,选择Config.sys窗口.
d.如果存在Shell= 的语句, 在其前面输入 REM ,即注释该语句.
e.如果该语句不存在,就直接输入SHELL=C:\COMMAND.COM /E:4096 /P ,注意,要保证该语句是从第一行第一个位置开始输入的。
f.保存、退出重新启动电脑就应该可以解决这个问题。
按上述方法解决这个问题之后,重新启动电脑后可以直接执行第4步。
5.在openssl解压目录下执行nmake -f ms\ntdll.mak,如果没有错误,就完成编译了。输出的文件在out32dll里面,包括应用程序的可执行文件、两个Lib文件和两个dll文件。
我根据openssl的说明,做了两种不通的编译,一直是加了ASM汇编语言编译器,一直是没有,即在第三步的时候执行do_masm或do_ms命令,时间上前者大概为3分钟(我的电脑配置是图拉丁塞杨1.2,内存256SDRM),后者大概是6分钟的样子。
然后,我使用了第三方提供的一个编译方法,该方法自动配置了openssl各个模块的V虚拟C工程连接配置项目,然后再进行编译,速度很慢,用了至少20分钟以上的时间,但是好处是可以将一个一个项目弄的比较清楚,其编译过程我就不说了,大家可以参看相关的文档。
Supper_Jerry
2008-04-07
打赏
举报
回复
http://topic.csdn.net/t/20020614/09/802476.html
星羽
2008-04-07
打赏
举报
回复
在VC中编译和使用OpenSSL
本文介绍在VC 6.0中编译和使用OpenSSL的过程。
一、编译OpenSSL
在编译OpenSSL前,需要正确安装Perl,因为在编译OpenSSL时需要使用到该程序。
下载最新版本的Perl:http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.822-MSWin32-x86-280952.zip。然后安装之。
下载最新版本的OpenSSL:http://www.openssl.org/source/openssl-0.9.8g.tar.gz
然后将源码释放的c:\openssl-0.9.8g目录中。
进入openssl源码目录。
cd c:\openssl-0.9.8.g
以下为参照该目录下的文件INSTALL.W32的执行过程:
运行configure:
perl Configure VC-WIN32 --prefix=c:/openssl
创建Makefile文件:
ms\do_ms
编译动态库:
nmake -f ms\ntdll.mak
编译静态库:
nmake -f ms\nt.mak
测试动态库:
nmake -f ms\ntdll.mak test
测试静态库:
nmake -f ms\nt.mak test
安装动态库:
nmake -f ms\ntdll.mak install
安装静态库:
nmake -f ms\nt.mak install
清除上次动态库的编译,以便重新编译:
nmake -f ms\ntdll.mak clean
清除上次静态库的编译,以便重新编译:
nmake -f ms\nt.mak clean
二、使用OpenSSL
在VC中配置使用以上的函数库:
点击菜单:Tools -> Options,弹出对话框"Options",在该对话框中选择"Directories"标签。
在"Show directories for:"的"Include files"选项中新增目录"C:\openssl\include";"Library files"选择中新增目录"C:\openssl\lib"。
然后在需要链接OpenSSL函数库的工程中编译时加入"libeay32.lib"就可以了。
三、问题
我在链接OpenSSL的静态函数库时遇到类似以下的问题:
Linking...
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strchr already defined in libcmtd.lib(strchr.obj)
...
这是由于OpenSSL的静态函数库使用的是了VC的多线程DLL的Release版本,而我的程序使用了多线程静态链接的Release版本。
调整OpenSSL的静态函数库使用的库函数版本即可,调整过程如下:
编辑文件 ms\nt.mak,将该文件第19行
"CFLAG= /MD /Ox /O2 /Ob2 /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE /Fdout32 -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 -DOPENSSL_NO_TLSEXT -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE"
中的"/MD"修改为"/MT"。然后重新编译安装OpenSSL即可。
四、附录:在VC中对C/C++ 运行时库不同版本编译指令说明
《在VC中对C/C++ 运行时库不同版本编译指令说明》(http://blog.yesky.com/271/dgkang/1737771.shtml)一文中详细介绍了连接不同版本库的编译指令如下:
C Runtime Library:
/MD MSVCRT.LIB 多线程DLL的Release版本
/MDd MSVCRTD.LIB 多线程DLL的Debug版本
/MT LIBCMT.LIB 多线程静态链接的Release版本
/MTd LIBCMTD.LIB 多线程静态链接的Debug版本
/clr MSVCMRT.LIB 托管代码和非托管代码混合
/clr:pure MSVCURT.LIB 纯托管代码
C++ Standard Library:
/MD MSVCPRT.LIB 多线程DLL的Release版本
/MDd MSVCPRTD.LIB 多线程DLL的Debug版本
/MT LIBCPMT.LIB 多线程静态链接的Release版本
/MTd LIBCPMTD.LIB 多线程静态链接的Debug版本
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2048487
studentinfoa
2008-04-07
打赏
举报
回复
各位给个帮助吧
openssl
windows
如果你在配置过程中没有遇到
问题
,`nmake`会生成所需的动态链接库(DLLs)、静态库(LIBs)以及可执行文件。 5. **安装**:编译成功后,使用`nmake install`命令将
OpenSSL
安装到指定的目录。默认情况下,这可能会...
解决centos离线安装cmake找不到
OpenSSL
问题
解决centos离线安装cmake找不到
OpenSSL
问题
mac(intel)
openssl
问题
MacOS(intel) 使用brew安装opencv遇到
openssl
问题
Qt 连接 https :解决
OpenSSL
问题
Qt 连接 https :解决
OpenSSL
问题
1.首先编写以下代码: qDebug() << manager->supportedSchemes(); (“ftp”, “file”, “qrc”, “http”, “https”, “data”) 如果返回值中没有 https,则证明没有...
mac 安装
openssl
问题
记录
mac 安装
openssl
问题
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章