关于OPENSSL在WINDOWS下编译和使用的坑

本文提供了使用ActivePerl和Microsoft Visual Studio编译OPENSSL的具体步骤,包括32位和64位环境下的配置、动态及静态库的编译过程,并强调了正确匹配编译版本的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为最近使用OPENSSL 编译使用RSA做开发,但是出现了各种问题。找了网上资源整合一下,不过还是有问题啊,在多次试验中终于找到了使用方法。

首先

    下载安装ActivePerl,地址:  http://www.activestate.com/activeperl/downloads/ ,安好了重启哈

   下载openssl源码,我使用的版本: openssl-1.0.1t ,地址:http://www.openssl.org/source/

openssl编译步骤:

32位编译:

1、到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin目录(看VS安装目录了)去执行  vcvars32.bat,初始化环境变量。

也可以直接打开x86命令行工具就可以了啊(在VS安装程序目录里可以找到)


2、运行configure(定位到OPENSSL目录下面去运行,下面也是一样):

perl Configure VC-WIN32  。(Release版本)

perl Configure debug-VC-WIN32 。(Debug版本

3、生成配置文件:

ms\do_ms

4、动态编译:

nmake -f ms\ntdll.mak

5、静态编译:

nmake -f ms\nt.mak

64位编译:

1、直接打开x64命令行工具就可以了啊(在VS安装程序目录里可以找到)


2、运行configure:

perl ConfigureVC-WIN64  。(Release版本)

perl Configure debug-VC-WIN64 。(Debug版本)

3、生成配置文件:

ms\do_ms

4、动态编译:

nmake -f ms\ntdll.mak

5、静态编译:

nmake -f ms\nt.mak

安装好了都可这个测试一下

nmake -f ms\ntdll.mak test。

动态编译好的库在这里out32dll。静态的编译好的库在这里out32这里。头文件在inc32里面。在VC++工程记得添加头文件目录。和库目录。

像酱紫的:



注意几个问题:1、编译出现错误:ml啊cl啊之类的。将上面的bin目录添加到环境变量去啊。

 2、32位编译的库放在32位工程使用,64位编译的放在64编译使用,用错了会出现很多奇怪的未知问题。

比如在RSA有个PEM_read_RSA_PUBKY函数老是出错,主要是因为版本用错了,老是检查不了原因。所以得注意

 3、Debug版本用Debug的项目,Release版本用Release的项目

比如在RSA有个PEM_read_RSA_PUBKY函数老是出错,主要是因为版本用错了,老是检查不了原因。所以得注意


<think>好的,我现在需要帮助用户在Ubuntu系统下搭建Qt的Windows交叉编译环境。这听起来有点复杂,但让我一步步理清楚思路。 首先,用户的目标是在Ubuntu上用Qt开发程序,然后交叉编译Windows可执行文件。这样他们就不需要切换到Windows系统进行编译,提高了开发效率。不过,交叉编译环境搭建通常涉及到多个步骤,可能会有一些依赖配置问题需要注意。 我记得Qt的交叉编译需要几个主要组件:Qt源码、交叉编译工具链(比如MinGW或者MXE),以及可能的依赖库。用户可能已经安装了Qt Creator,但需要配置交叉编译工具链。另外,Windows的库Ubuntu的不同,所以可能需要使用MXE(M Cross Environment)来提供这些库。 首先,我应该考虑安装MXE,因为它是一个专门用于交叉编译的工具,能简化很多步骤。安装MXE需要从GitHub克隆仓库,然后编译所需的工具链库。用户可能需要安装一些依赖包,比如autoconf、automake、libtool等,这些在Ubuntu上可以通过apt-get安装。 接下来,用户需要选择Qt的版本,并确保MXE支持该版本。例如,MXE可能支持Qt5或Qt6的不同版本。编译Qt可能需要一些时间,并且需要指定目标架构,比如i686(32位)或x86_64(64位)的Windows。 然后,配置Qt Creator,添加交叉编译工具链。这包括指定编译器路径(如g++)、qmake的路径(来自MXE安装目录),以及设置正确的环境变量。可能还需要配置套件(Kit),将编译器、Qt版本调试器结合起来。 另外,可能需要处理动态链接库的问题,比如将必要的DLL文件复制到生成的可执行文件目录中,或者静态编译以避免依赖问题。静态编译可能需要调整MXE的编译选项,并处理许可证问题,因为Qt的某些版本可能有静态链接的限制。 用户可能会遇到常见问题,比如找不到Windows库、路径配置错误、权限问题导致编译失败等。这时候需要检查MXE的安装是否正确,环境变量是否设置,以及Qt Creator中的路径是否正确指向MXE中的工具。 此外,可能还需要测试编译后的程序是否真的能在Windows上运行,可能需要使用wine进行测试,或者在虚拟机中运行实际的Windows系统来验证。 总结一下,步骤大致是:安装MXE,安装所需的工具链Qt库,配置Qt Creator,处理依赖库,测试编译。需要确保所有步骤中的命令正确无误,路径设置正确,并且处理可能出现的错误信息。 现在,我需要将这些步骤以清晰的方式组织起来,分点说明,并注意可能遇到的,比如依赖包安装、权限问题、Qt版本兼容性等。同时,要提供具体的命令示例,方便用户复制粘贴操作。另外,提醒用户注意32位64位的选择,以及动态链接与静态编译的区别,确保他们根据自己的需求选择合适的配置。</think>在 Ubuntu 下搭建 Qt 的 Windows 交叉编译环境,通常使用 **MXE (M Cross Environment)** 或 **MinGW-w64** 工具链。以下是基于 MXE 的详细步骤: --- ### **1. 安装依赖** ```bash sudo apt update sudo apt install -y autoconf automake autopoint bash bison bzip2 flex \ g++ g++-multilib gettext git gperf intltool libgdk-pixbuf2.0-dev \ libtool libltdl-dev libssl-dev libxml-parser-perl make openssl p7zip-full \ patch perl pkg-config python3 ruby sed unzip wget xz-utils ``` --- ### **2. 安装 MXE** ```bash # 克隆 MXE 仓库 git clone https://github.com/mxe/mxe.git cd mxe # 编译工具链 Qt(以 64 位 Windows 为例,若需 32 位则将 x86_64 替换为 i686) # 可根据需要添加其他库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值