Esta biblioteca se compila con MinGW utilizando MSYS2.
1.- Descargar el archivo "libffi-3.2.1.tar.gz" (ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz).
de la página: https://sourceware.org/libffi/
2.- Descomprimir "libffi-3.2.1.tar.gz" y el archivo comprimido en éste "libffi-3.2.1.tar" en la carpeta "C:\msys64\home\luis". Se crea la carpeta "C:\msys64\home\luis\libffi-3.2.1". Renombrarla a "C:\msys64\home\luis\libffi-3.2.1-32".
3.- Dar clic en el botón Inicio -> Programas -> MSYS2 64bit y seleccionar "MSYS2 MinGW 32-bit".
4.- En la ventana de comandos ejecutar:
cd libffi-3.2.1
./configure
make
5.- Durante la compilación se crea la carpeta "C:\msys64\home\luis\libffi-3.2.1\i686-w64-mingw32". En esta carpeta se encuentra la carpeta "C:\msys64\home\luis\libffi-3.2.1-32\i686-w64-mingw32\.libs". El archivo que nos interesan en esta carpeta es:
libffi-6.dll
6.- Ejecutar el comando "strip" sobre "libffi-6.dll".
7.- Descargar el archivo "gendef-1.0.1346-1-mingw32-bin.tar.lzma" (https://sourceforge.net/projects/mingw/files/MinGW/Extension/gendef/gendef-1.0.1346/gendef-1.0.1346-1-mingw32-bin.tar.lzma/download)
de la página https://sourceforge.net/projects/mingw/files/MinGW/Extension/gendef/gendef-1.0.1346/.
8.- Descomprimir el archivo "gendef.exe" dentro de "gendef-1.0.1346-1-mingw32-bin.tar.lzma" en la carpeta "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC".
9.- Copiar el archivo "libffi-6.dll" en "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC".
10.- Abrir la ventana de comandos "Símbolo del sistema de Visual Studio (2010)" en "Visual Studio Tools" (buscar en el botón Inicio y en Programas)
11.- En la ventana de comandos de Visual Studio ejecutar:
gendef libffi-6.dll
Se crea el archivo "libffi-6.def"
12.- En la ventana de comandos de Visual Studio ejecutar:
lib /MACHINE:x86 /def:libffi-6.def /out:ffi.lib
Se crean los archivos "ffi.lib" y "ffi.exp".
13.- Crear una carpeta con el nombre "libffi-3.2.1-dev-vs10-x86". En esta carpeta crear las carpetas "bin", "include" y "lib". En la carpeta "bin" copiar el archivo "libffi-6.dll" que se encuentra en "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC". En la carpeta include copiar los archivos "ffi.h" y "ffitarget.h" que se encuentran en "C:\msys64\home\luis\libffi-3.2.1-32\i686-w64-mingw32\include". En la carpeta "lib" copiar los archivos "ffi.lib" y "ffi.exp" que se encuentran en "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC"