Compiling OpenSSL with MinGW

From Qt Wiki
Revision as of 07:14, 10 February 2015 by Maintenance script (talk | contribs)
Jump to navigation Jump to search

Compiling OpenSSL with MinGW or MinGW-w64

Qt 5 / QtWebkit can make use of OpenSSL, which MinGW distributions do not ship.

Pre-built packages

The Win32OpenSSL project [slproweb.com] provides pre-compiled libraries for both 32 and 64 bit. However, these depend on the Microsoft Visual C++ 2008 runtime being installed.

Inside MSYS2 shell, pre-built openssl can be obtained from MSYS2 repo, with this command: pacman -S openssl

Compiling on your own

Requirements

  • Either use MSYS, or use MSYS2 :
  • Working MinGW, or MinGW-w64 toolchain:
    • Either get & load MinGW, or, get & load MinGW-w64 toolchains (from their respective project website), or, use “MinGW-w64” toolchains from MSYS2 repo, inside the MSYS2-shell.
    • NOTE: Do not use (or try to avoid using) different type of toolchains for building different sub-components for the same/main project, when targeted for same platform/OS. If you are using MinGW-w64 based toolchains from MSYS2\mingw32 or MSYS2\mingw64, then for main project & all sub-components, use same MSYS2 toolchains. If you are using MinGW toolchain, then for all of your sub-components & main project, use same MinGW toolchain. If you are using MinGW-w64 toolchains from “MinGW-builds”, then for all sub-components & main project, use same MinGW-builds toolchains.

How to build

  • Download latest+stable OpenSSL [openssl.org] (You must use HTTPS secure encrypted connection to obtain source file) from https://www.openssl.org/source (e.g. openssl-1.0.1c.tar.gz)
  • Either start MSYS-shell, or start MSYS2-shell:
    • Start a MSYS shell command prompt (C:\msys\1.0\msys.bat)
    • Or, start MSYS2 shell command prompt (C:\msys2\msys2_shell.bat)
      • See inside this MSYS2 page, how to prepare MSYS2 with build/compile related toolchains, tools & dependencies
  • Extract source tar.gz using MSYS tar or MSYS2 tar (and ignore the symlink warnings)
    • don’t use 7zip or other apps, since they fail to set up any symlinks! tar will also complain about symlinks, but compilation will still succeed.
  • Unzip/decompress source:
  • Check that gcc is in PATH, otherwise add it: change below command to match with your-side directory’s exact name & letter-case & location:
    • If using MinGW-builds toolchain (which is usually located outside of MSYS or MSYS2), then execute this in MSYS or in MSYS2:
    • If using MSYS shell, and if you have installed MinGW toolchain into C:\mingw32 directory, then execute this:
    • If using MSYS2 shell, execute this, if you are building for 32bit:
    • If using MSYS2 shell, execute this, if you are building for 64bit:
  • for MinGW (32 bit) do:
  • for MinGW-w64 do:
  • Compile & install:

Errors

  • If you run into

Using it

  • Add the bin, include, lib folders to your compilation environment, e.g. for cmd.exe (Cmd-shell) :
  • Add the bin, include, lib folders to your compilation environment, e.g. for MSYS2/MSYS-shell :

When you now run Qt’s configure.exe openssl should be detected, and Qt links against the libraries.

Categories: