我正在为使用 OpenSSL 1.0.1e 库的 Windows 开发 C++ 应用程序。我在 Visual Studio 2008 上。
出于可移植性的原因,我的应用程序与运行时库(/MT
和/MTd
选项)静态链接。而且我的应用程序不附带运行时库。
根据OpenSSL FAQ,该库默认链接到多线程 DLL 运行时 ( /MDd
),这显然与我的方案不兼容。因此,为了使我的程序正常工作,我已将其添加applink.c
到我的项目中。在我的开发机器和大多数测试计算机上,该程序运行良好。
但不幸的是,我找到了应用程序无法启动的计算机。Windows 显示错误:
The application failed to initialize properly (0xc0150002). Click on OK to
terminate the application.
我libeay32.dll
在 Dependency Walker中打开过,MSVCR90.dll
但发现没有找到。所以这个技巧applink.c
对我来说真的不起作用。
如何使用/MT
or/MTd
选项构建 OpenSSL?