{"id":953,"date":"2015-08-26T17:54:52","date_gmt":"2015-08-27T02:54:52","guid":{"rendered":"http:\/\/blog.box.kr\/?p=953"},"modified":"2015-08-26T17:54:52","modified_gmt":"2015-08-27T02:54:52","slug":"how-to-install-openssl-on-windows-with-visual-studio-2015","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=953","title":{"rendered":"How to install openssl on windows with visual studio 2015"},"content":{"rendered":"<p>cite from\u00a0<a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/\">http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/<br \/>\na<\/a>nd some edit..<\/p>\n<p>==================================================<\/p>\n<p>&nbsp;<\/p>\n<p>You need to install\u2026<\/p>\n<ul>\n<li>Visual Studio 2015 (this will likely work with older versions as well)<\/li>\n<li><a title=\"ActivePerl Download\" href=\"http:\/\/www.activestate.com\/activeperl\/downloads\" target=\"_blank\">ActivePerl<\/a> <a id=\"tippy_1_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"1\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_1\" name=\"foot_loc_58_1\">1<\/a><\/li>\n<li>Latest version of <a title=\"OpenSSL Source Code Download\" href=\"http:\/\/www.openssl.org\/source\/\" target=\"_blank\">OpenSSL source-code<\/a> <a id=\"tippy_2_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"2\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_2\" name=\"foot_loc_58_2\">2<\/a>\u00a0or\n<pre><code>$ git clone git:\/\/git.openssl.org\/openssl.git\n<\/code><\/pre>\n<pre>$ cd openssl\n$ git config core.autocrlf false\n$ git config core.eol lf\n$ git checkout .<\/pre>\n<\/li>\n<li>nasm (\u00a0<a href=\"http:\/\/www.nasm.us\/pub\/nasm\/releasebuilds\/2.11.08\/win32\/\">http:\/\/www.nasm.us\/pub\/nasm\/releasebuilds\/2.11.08\/win32\/<\/a>\u00a0)<\/li>\n<\/ul>\n<h2>Setting up for the build<\/h2>\n<p>Unzip<a id=\"tippy_3_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"3\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_3\" name=\"foot_loc_58_3\">3<\/a> the OpenSSL source code into two different folders, one for the 32-bit build and one for the 64-bit build<a id=\"tippy_4_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"4\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_4\" name=\"foot_loc_58_4\">4<\/a>. So, for example, you might end up with <code>C:openssl-src-32<\/code> and <code>C:openssl-src-64<\/code>.<\/p>\n<h2>Building the 32-bit static libraries<\/h2>\n<ol>\n<li>Open the <strong>Visual Studio Command Prompt (2010)<\/strong><a id=\"tippy_5_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"5\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_5\" name=\"foot_loc_58_5\">5<\/a>.<\/li>\n<li><code>cd<\/code> to your OpenSSL source folder for 32-bit (e.g. <code>cd C:openssl-src-32<\/code>).<\/li>\n<li>Run the following:\u00a0<a id=\"tippy_6_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"6\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_6\" name=\"foot_loc_58_6\">6<\/a>\n<div id=\"crayon-55de7360a8004686836239\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\" style=\"height: 120px;\" width=\"731\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8004686836239-1\">1\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8004686836239-2\">2\n<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8004686836239-3\">3\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8004686836239-4\">4\n<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-line\"><span class=\"crayon-e\">perl <\/span><span class=\"crayon-e\">Configure <\/span><span class=\"crayon-r \">VC-WIN32 \u00a0\u00a0<\/span>no-idea no-mdc2 no-rc5 \u00a0<span class=\"crayon-o\">&#8212;<\/span><span class=\"crayon-i\">prefix<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-i\">C<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-r \">Build-OpenSSL<\/span><span class=\"crayon-cn\">-VC<\/span><span class=\"crayon-cn\">-32<\/span>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-pre\">\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8004686836239-2\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-e\">do_ms \u00a0 or \u00a0 \u00a0\u00a0<strong><span style=\"color: #000000;\">msdo_nasm<\/span><\/strong><\/span>\n<\/div>\n<div class=\"crayon-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak \u00a0 or \u00a0<\/span><strong><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">ntdll<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak<\/span><\/strong>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8004686836239-4\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak <\/span><span class=\"crayon-i\">install \u00a0or <strong>nmake -f msntdll.make install<\/strong><\/span>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<p>Your outputs will be in <code>C:Build-OpenSSL-VC-32<\/code>.<\/p>\n<h2>Building the 32-bit static libraries with debug symbols<\/h2>\n<p>These steps will embed the debug symbols directly into the <code>.lib<\/code> files. <strong>Don\u2019t expect to see any <code>.pdb<\/code> files.<\/strong><\/p>\n<ol>\n<li>Open the <strong>Visual Studio Command Prompt (2010)<\/strong>.<\/li>\n<li><code>cd<\/code> to your OpenSSL source folder for 32-bit (e.g. <code>cd C:openssl-src-32<\/code>).<\/li>\n<li>Run the following:\n<div id=\"crayon-55de7360a8343789515570\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\" style=\"height: 51px;\" width=\"810\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8343789515570-1\">1\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8343789515570-2\">2\n<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-line\"><span class=\"crayon-e\">perl <\/span><span class=\"crayon-e\">Configure <\/span><span class=\"crayon-i\">debug<\/span><span class=\"crayon-cn\">-VC<\/span><span class=\"crayon-cn\">-WIN32\u00a0<\/span><span class=\"crayon-r \">\u00a0<\/span>no-idea no-mdc2 no-rc5 \u00a0\u00a0<span class=\"crayon-o\">&#8212;<\/span><span class=\"crayon-i\">prefix<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-i\">C<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-r \">Build-OpenSSL<\/span><span class=\"crayon-cn\">-VC<\/span><span class=\"crayon-cn\">-32<\/span><span class=\"crayon-cn\">-dbg<\/span>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8343789515570-2\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">do_ms<\/span>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<li>In a text editor (like <strong>Notepad<\/strong>), open <code>msnt.mak<\/code> and replace all occurrences of <code>\/Zi<\/code> with <code>\/Z7<\/code>. There should be three replacements.<a id=\"tippy_7_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"7\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_7\" name=\"foot_loc_58_7\">7<\/a><\/li>\n<li>Run the following:\n<div id=\"crayon-55de7360a8359222372734\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8359222372734-1\">1\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8359222372734-2\">2\n<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8359222372734-1\" class=\"crayon-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak<\/span>\n<\/div>\n<div id=\"crayon-55de7360a8359222372734-2\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak <\/span><span class=\"crayon-i\">install<\/span>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<p>Your outputs will be in <code>C:Build-OpenSSL-VC-32-dbg<\/code>. Make sure you rename them to something like <code>libeay32-debug.lib<\/code> and <code>ssleay32-debug.lib<\/code>.<\/p>\n<h2>Building the 64-bit static libraries<\/h2>\n<ol>\n<li>Open the <strong>Visual Studio x64 Win64 Command Prompt (2010)<\/strong> (in the <strong>Start<\/strong> menu).<\/li>\n<li><code>cd<\/code> to your OpenSSL source folder for 64-bit (e.g. <code>cd C:openssl-src-64<\/code>).<\/li>\n<li>Run the following:\n<div id=\"crayon-55de7360a8367711590546\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\" style=\"height: 93px;\" width=\"823\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8367711590546-1\">1\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8367711590546-2\">2\n<\/div>\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8367711590546-3\">3\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8367711590546-4\">4\n<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-line\"><span class=\"crayon-e\">perl <\/span><span class=\"crayon-e\">Configure <\/span><span class=\"crayon-r \">VC-WIN64A\u00a0<\/span><span class=\"crayon-r \">\u00a0<\/span>no-idea no-mdc2 no-rc5 \u00a0\u00a0<span class=\"crayon-o\">&#8212;<\/span><span class=\"crayon-i\">prefix<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-i\">C<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-r \">Build-OpenSSL<\/span><span class=\"crayon-cn\">-VC<\/span><span class=\"crayon-cn\">-64<\/span>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8367711590546-2\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-e\">do_win64a<\/span>\n<\/div>\n<div id=\"crayon-55de7360a8367711590546-3\" class=\"crayon-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak<\/span>\n<\/div>\n<div id=\"crayon-55de7360a8367711590546-4\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak <\/span><span class=\"crayon-i\">install<\/span>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<p>Your outputs will be in <code>C:Build-OpenSSL-VC-64<\/code>.<\/p>\n<p><strong>Note:<\/strong> The outputs of the 64-bit build are still named <code>libeay32.lib<\/code> and <code>ssleay32.lib<\/code>. You\u2019ll have to rename them more sensibly yourself.<\/p>\n<h2>Building the 64-bit static libraries with debug symbols<\/h2>\n<p>These steps will embed the debug symbols directly into the <code>.lib<\/code> files. <strong>Don\u2019t expect to see any <code>.pdb<\/code> files.<\/strong><\/p>\n<ol>\n<li>Open the <strong>Visual Studio x64 Win64 Command Prompt (2010)<\/strong>.<\/li>\n<li><code>cd<\/code> to your OpenSSL source folder for 64-bit (e.g. <code>cd C:openssl-src-64<\/code>).<\/li>\n<li>Run the following:\n<div id=\"crayon-55de7360a8374465347590\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\" style=\"height: 72px;\" width=\"816\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8374465347590-1\">1\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8374465347590-2\">2\n<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-pre\">\n<div class=\"crayon-line\"><span class=\"crayon-e\">perl <\/span><span class=\"crayon-e\">Configure <\/span><span class=\"crayon-i\">debug<\/span><span class=\"crayon-cn\">-VC<\/span><span class=\"crayon-cn\">-WIN64A\u00a0<\/span><span class=\"crayon-r \">\u00a0<\/span>no-idea no-mdc2 no-rc5 \u00a0\u00a0<span class=\"crayon-o\">&#8212;<\/span><span class=\"crayon-i\">prefix<\/span><span class=\"crayon-o\">=<\/span><span class=\"crayon-i\">C<\/span><span class=\"crayon-o\">:<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-r \">Build-OpenSSL<\/span><span class=\"crayon-cn\">-VC<\/span><span class=\"crayon-cn\">-64<\/span><span class=\"crayon-cn\">-dbg<\/span>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8374465347590-2\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">do_win64a<\/span>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<li>In a text editor (like <strong>Notepad<\/strong>), open <code>msnt.mak<\/code> and replace all occurrences of <code>\/Zi<\/code> with <code>\/Z7<\/code> <strong>except on the line starting with <code>ASM<\/code><\/strong>. There should be two replacements. <a id=\"tippy_8_link\" class=\"tippy_link annie_footnoteRef annie_custom\" title=\"8\" href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_text_58_8\" name=\"foot_loc_58_8\">8<\/a><\/li>\n<li>Run the following:\n<div id=\"crayon-55de7360a8388685309690\" class=\"crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate\" data-settings=\" minimize scroll-mouseover\">\n<div class=\"crayon-plain-wrap\">\n<\/div>\n<div class=\"crayon-main\">\n<table class=\"crayon-table\">\n<tbody>\n<tr class=\"crayon-row\">\n<td class=\"crayon-nums \" data-settings=\"show\">\n<div class=\"crayon-nums-content\">\n<div class=\"crayon-num\" data-line=\"crayon-55de7360a8388685309690-1\">1\n<\/div>\n<div class=\"crayon-num crayon-striped-num\" data-line=\"crayon-55de7360a8388685309690-2\">2\n<\/div>\n<\/div>\n<\/td>\n<td class=\"crayon-code\">\n<div class=\"crayon-pre\">\n<div id=\"crayon-55de7360a8388685309690-1\" class=\"crayon-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak<\/span>\n<\/div>\n<div id=\"crayon-55de7360a8388685309690-2\" class=\"crayon-line crayon-striped-line\"><span class=\"crayon-i\">nmake<\/span> <span class=\"crayon-cn\">-f<\/span> <span class=\"crayon-i\">ms<\/span><span class=\"crayon-sy\"><\/span><span class=\"crayon-i\">nt<\/span><span class=\"crayon-sy\">.<\/span><span class=\"crayon-e\">mak <\/span><span class=\"crayon-i\">install<\/span>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<p>Your outputs will be in <code>C:Build-OpenSSL-VC-64-dbg<\/code>. Make sure you rename them to something like <code>libeay64-debug.lib<\/code> and <code>ssleay64-debug.lib<\/code>.<\/p>\n<h2>What not to do<\/h2>\n<p>I tried every method under the sun to get a Windows build of OpenSSL that would link against Visual Studio projects. I learned a great deal along the way. Here\u2019s what I learned <strong>not<\/strong> to do:<\/p>\n<ul>\n<li>Don\u2019t blindly follow the Windows 32-bit\/64-bit installation instructions provided in the OpenSSL source folder. Get guidance online.<\/li>\n<li>Don\u2019t build OpenSSL in <a title=\"Cygwin\" href=\"http:\/\/www.cygwin.com\/\" target=\"_blank\">Cygwin<\/a>. It\u2019s easy. It won\u2019t link against Visual Studio.<\/li>\n<li>Don\u2019t build OpenSSL in <a title=\"MSYS\" href=\"http:\/\/www.mingw.org\/wiki\/MSYS\" target=\"_blank\">MSYS<\/a> or <a title=\"MinGW\" href=\"http:\/\/www.mingw.org\/wiki\/MinGW\" target=\"_blank\">MinGW<\/a>. It\u2019s hard. It won\u2019t link against Visual Studio.<\/li>\n<li>Don\u2019t try to use <a title=\"NASM\" href=\"http:\/\/nasm.us\/\" target=\"_blank\">NASM<\/a> like the Windows installation instructions mention. It\u2019s not necessary for Visual Studio builds. (It only supports 32-bit anyway.)<\/li>\n<li>Strawberry Perl doesn\u2019t always work in these weird configurations. ActivePerl seemed more stable.<\/li>\n<li>Don\u2019t try to build 32-bit and 64-bit OpenSSL in the same folder. The first build will leave artifacts that will mess up the second build. (Running a clean isn\u2019t enough, apparently.)<\/li>\n<li>Don\u2019t try to build 32-bit OpenSSL inside of Visual Studio\u2019s 64-bit command prompt and vice versa. It doesn\u2019t work.<\/li>\n<\/ul>\n<h2>References<\/h2>\n<p>These were very helpful places:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/freelan-developers\/freelan-buildtools\/blob\/master\/INSTALL.md\">https:\/\/github.com\/freelan-developers\/freelan-buildtools\/blob\/master\/INSTALL.md<\/a><\/li>\n<\/ul>\n<div class=\"annie_notes annie_custom\">\n<p><span class=\"annie_noteHeader annie_custom\">Footnotes:<\/span><\/p>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_1\" name=\"foot_text_58_1\">1<\/a>. Do not use\u00a0<a title=\"Strawberry Perl\" href=\"http:\/\/strawberryperl.com\/\" target=\"_blank\">Strawberry Perl<\/a>\u00a0(see comments for this post).\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_2\" name=\"foot_text_58_2\">2<\/a>. OpenSSL version 1.0.1c was the latest at the time of writing.\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_3\" name=\"foot_text_58_3\">3<\/a>. <a title=\"7-zip Download\" href=\"http:\/\/www.7-zip.org\/\" target=\"_blank\">7-zip<\/a> is good for unzipping <code>.tar.gz<\/code> files on Windows. It\u2019s a two-step process.\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_4\" name=\"foot_text_58_4\">4<\/a>. OpenSSL\u2019s build scripts are not clever enough to handle two different platform builds in sequence. Separate platform builds must start from scratch.\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_5\" name=\"foot_text_58_5\">5<\/a>. You can find it somewhere in the <strong>Start<\/strong> menu.\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_6\" name=\"foot_text_58_6\">6<\/a>. Using\u00a0<code>ms\\ntdll.mak<\/code>\u00a0will build the shared library instead.\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_7\" name=\"foot_text_58_7\">7<\/a>. The <code>\/Zi<\/code> option works, but it\u2019s hard to find the right <code>.pdb<\/code> file without specifying more options. For the sake of simplicity, the <code>\/Z7<\/code> option just embeds all the debug symbols into the <code>.lib<\/code> files. Read more <a title=\"Debug Options in Microsoft Compilers\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms864507.aspx\" target=\"_blank\">here<\/a>.\n<\/div>\n<div class=\"annie_note_container\"><a href=\"http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/#foot_loc_58_8\" name=\"foot_text_58_8\">8<\/a>. For the 64-bit build, Visual Studio uses MASM (<code>ml64.exe<\/code>) to compile assembly code. According to <a title=\"MASM Documentation\" href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/s0ksfwcf%28v=vs.71%29.aspx\" target=\"_blank\">MASM\u2019s documentation<\/a>, the <code>\/Z7<\/code> option is not supported.\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>cite from\u00a0http:\/\/developer.covenanteyes.com\/building-openssl-for-visual-studio\/ and some edit.. ================================================== &nbsp; You need to install\u2026 Visual Studio 2015 (this will likely work with older versions as well) ActivePerl 1 Latest version of OpenSSL source-code 2\u00a0or $ git clone git:\/\/git.openssl.org\/openssl.git $ cd openssl $ git config core.autocrlf false $ git config core.eol lf $ git checkout . nasm (\u00a0http:\/\/www.nasm.us\/pub\/nasm\/releasebuilds\/2.11.08\/win32\/\u00a0) Setting up for the build Unzip3 the OpenSSL source code into two different folders, one for the 32-bit build and one for the 64-bit build4. So, for example, you might end up with C:openssl-src-32 and C:openssl-src-64. Building the 32-bit static libraries Open the Visual Studio Command Prompt (2010)5. cd to your OpenSSL source folder for 32-bit (e.g. cd C:openssl-src-32). Run the following:\u00a06 1 2 3 4 perl Configure VC-WIN32 \u00a0\u00a0no-idea no-mdc2 no-rc5 \u00a0&#8212;prefix=C:Build-OpenSSL-VC-32 msdo_ms \u00a0 or \u00a0 \u00a0\u00a0msdo_nasm nmake -f msnt.mak \u00a0 or \u00a0nmake -f msntdll.mak nmake -f msnt.mak install \u00a0or nmake -f msntdll.make install Your outputs will be in C:Build-OpenSSL-VC-32. Building the 32-bit static libraries with debug symbols These steps will embed the debug symbols directly into the .lib files. Don\u2019t expect to see any .pdb files. Open the Visual Studio Command Prompt (2010). cd to your OpenSSL source folder for 32-bit (e.g. cd C:openssl-src-32). [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[4,5],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-fn","jetpack-related-posts":[{"id":899,"url":"https:\/\/blog.box.kr\/?p=899","url_meta":{"origin":953,"position":0},"title":"Cassandra cpp driver install","date":"2015-06-16","format":false,"excerpt":"http:\/\/datastax.github.io\/cpp-driver\/topics\/building\/ \u00a0 Building Supported Platforms The driver is known to work on CentOS\/RHEL 5\/6\/7, Mac OS X 10.8\/10.9 (Mavericks and Yosemite), Ubuntu 12.04\/14.04 LTS, and Windows 7 SP1. It has been built using GCC 4.1.2+, Clang 3.4+, and MSVC 2010\/2012\/2013. Dependencies Driver CMake libuv (1.x or 0.10.x) OpenSSL (optional) NOTE:\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":781,"url":"https:\/\/blog.box.kr\/?p=781","url_meta":{"origin":953,"position":1},"title":"Install Telegram-cli on Centos7","date":"2015-05-13","format":false,"excerpt":"1. lua package install yum -y install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel 1. git clone git clone --recursive https:\/\/github.com\/vysheng\/tg.git telegram 2. configure and make .\/configure \u00a0 \u00a0 \u00a0make \u00a0 \u00a0","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":950,"url":"https:\/\/blog.box.kr\/?p=950","url_meta":{"origin":953,"position":2},"title":"How to install POCO C++ libraries on Windows with Visual studio 2015","date":"2015-08-26","format":false,"excerpt":"1. \u00a0Download Poco Libraries\u00a0 ( http:\/\/pocoproject.org\/download\/index.html\u00a0) 2. Extract(eg: extract to C:poco-1.6.1) 2-1. if you are choices \u00a0included openssl version please openssl install on your windows \u00a0before next step. 3. Find appropriate solution file and build. build_vs71.cmd ==> Visual Studio .NET 2003 build_vs80.cmd ==> Visual Studio 2005 build_vs90.cmd ==> Visual Studio\u2026","rel":"","context":"In &quot;C\/C++&quot;","img":{"alt_text":"\u00ec\u008a\u00a4\u00ed\u0081\u00ac\u00eb\u00a6\u00b0\u00ec\u0083\u00b7 2015-08-27 \u00ec\u0098\u00a4\u00ec\u00a0\u0084 11.40.15","src":"https:\/\/i0.wp.com\/192.168.1.200\/wordpress\/wp-content\/uploads\/2015\/08\/\u00ec\u008a\u00a4\u00ed\u0081\u00ac\u00eb\u00a6\u00b0\u00ec\u0083\u00b7-2015-08-27-\u00ec\u0098\u00a4\u00ec\u00a0\u0084-11.40.15.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":864,"url":"https:\/\/blog.box.kr\/?p=864","url_meta":{"origin":953,"position":3},"title":"How to Install Git 2.4.2 on CentOS\/Redhat 7,6,5 and Fedora 20\/19","date":"2015-05-27","format":false,"excerpt":"http:\/\/tecadmin.net\/install-git-2-0-on-centos-rhel-fedora\/ Git has released 2.4.2\u00a0version on May 26, 2015.It has lots of noticeable changes over git 1.9 release. Git is a free and open source distributed version control system . It is designed to handle a small to very large projects with speed and efficiency. To know more about read\u2026","rel":"","context":"In &quot;\uae30\uc220&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":770,"url":"https:\/\/blog.box.kr\/?p=770","url_meta":{"origin":953,"position":4},"title":"Bugzilla \uc124\uce58\uc2dc compiler error ( Lib, Module \uc5c6\ub2e4\ub294.. \uc624\ub958 )","date":"2015-05-11","format":false,"excerpt":"-lz \uc624\ub958\ub294 yum\u00a0-y install \u00a0zlib-devel -lssl \uc624\ub958\ub294 yum -y install openssl-devel \u00a0 -lcrypto \uc624\ub958\ub294 yum install -y openssl-devel \u00a0","rel":"","context":"In &quot;\uae30\uc220\uc790\ub8cc&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":775,"url":"https:\/\/blog.box.kr\/?p=775","url_meta":{"origin":953,"position":5},"title":"Setup mail server on centos 7","date":"2015-05-12","format":false,"excerpt":"This article helps you to install and configure basic mail server on Centos 7. Here i have used Postfix for SMTP, Dovecot for POP\/IMAP and Dovecot SASL for SMTP AUTH. Before proceeding please make sure you have assigned static IP for the server and have internet connectivity for installing packages.\u2026","rel":"","context":"In &quot;\uae30\uc220\uc790\ub8cc&quot;","img":{"alt_text":"Setup mail server on centos 7","src":"https:\/\/i0.wp.com\/1-ps.googleusercontent.com\/hk\/AwAJwg9ecIBNxEHGg0w8SfePD8\/www.krizna.com\/wp-content\/uploads\/2015\/01\/Setup_mail_server_centos_7.png.pagespeed.ce._so1uJb5qKCs4NSN7OOP.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/953"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=953"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/953\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=953"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=953"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}