Compiled binary libraries for Windows

Victor Liu

October 7, 2008


Precompiled Windows LIB files for some commonly (and not so commonly) used libraries.

Motivation

What is the deal with open source libraries out there that refuse to distribute Windows binaries? Come on people, it's not that hard to create a standard Visual Studio .LIB/.DLL file. The situation has recently been improving, but many libraries out there still insist that people should compile their own.

Of course, I admit I don't bundle binaries for vDEC, but that's because it's still alpha stage, and there really is no point making a .LIB that will be obsoletized by a release in a week.

There should also just be standard Windows library distributions of common mathematical libraries such as BLAS, LAPACK, etc. for both static and dynamic linking. It's a wonder these things don't exist already and that there aren't people loudly complaining about the situation (I'm sure there are casual Windows programmers out there that need math libraries).

I don't really know how to use diff to make patches, so I'm just going to redistribute the modified sources when relevant (you will need them for the import definitions in the headers).

Name Notes Files
BLAS Comes with LAPACK v3.1.1.
Compiled with MinGW v5.1.3, gcc v3.4.5.
Procedure:
  1. Edit make.inc. Set NOOPT to -O0 -W0
  2. cd BLAS/SRC; make
  3. dllwrap --export-all-symbols *.o -lg2c --output-def blas_win32.def -o blas_win32.dll
  4. lib /machine:i386 /def:blas_win32.def
LIB+DLL
LAPACK Version 3.1.1.
Compiled with MinGW v5.1.3, gcc v3.4.5.
Procedure:
  1. Edit make.inc. Set NOOPT to -O0 -W0
  2. make
  3. dllwrap --export-all-symbols SRC/*.o INSTALL/slamch.o INSTALL/dlamch.o -lg2c -lblas_win32 -L../output --output-def lapack_win32.def -o lapack_win32.dll
  4. lib /machine:i386 /def:lapack_win32.def
LIB+DLL
ARPACK 1996 edition.
Compiled with MinGW v5.1.3, gcc v3.4.5.
Procedure:
  1. cd ARPACK
  2. Edit ARmake.inc (see example)
  3. make all
  4. dllwrap --export-all-symbols SRC/*.o UTIL/*.o -lg2c -lblas_win32 -llapack_win32 -L../output --output-def arpack_win32.def -o arpack_win32.dll
Example ARmake.inc
LIB+DLL
AMD Version 2.2.0
Patched to export symbols.
Compiled with VS2k5, Multithreaded DLL. Requires SSE1. Release version defines _SECURE_SCL=0.
LIB+DLL
Modified sources
UMFPACK Version 5.1.0
Patched to export symbols.
Compiled with VS2k5, Multithreaded DLL. Requires SSE1.
Linked against the MinGW BLAS above. Release version defines _SECURE_SCL=0.
LIB+DLL
Modified sources
TAUCS Version 2.2
Patched to export symbols.
Compiled with custom DLL variant. Excludes Metis, Harwell-Boeing, and Gremban-Miller.
Linked against MinGW BLAS and LAPACk from above. Release version defines _SECURE_SCL=0.
LIB+DLL
Modified sources with build variants
TetGen Version 1.4.2 patched (developmental)
Patched to export symbols.
Compiled with VS2k5, Multithreaded DLL. Requires SSE1. Release version defines _SECURE_SCL=0.
LIB+DLL
Modified sources
BVPPP Compiled with VS2k5, Multithreaded static library. Requires SSE1. Release LIB+DLL
Debug LIB+DLL