Вот как собирать под Линуксом FreeImage из исходников:
$ unzip ~/Downloads/FreeImage3151.zip
$ cd FreeImage/
$ make -f Makefile.mingw
make: dlltool: Команда не найдена
make: *** [FreeImage.exp] Ошибка 127
# используются стандартные пути к программам компиляции, поэтому заменяем имена gcc -> i586-mingw32msvc-gcc и т.п.
$ make -f Makefile.mingw clean
$ make -f Makefile.mingw
....
cp FreeImage.dll Dist/FreeImage.dll
cp FreeImage.lib Dist/FreeImage.lib
cp Source/FreeImage.h Dist/FreeImage.h
(собралось)
$ wine pexports.exe FreeImage.dll > FreeImage.def
$ cat FreeImage.def | sed 's/^_//g' > FreeImage-new.def
$ i586-mingw32msvc-dlltool --input-def FreeImage.def --output-lib libfreeimage.a
(теперь libfreeimage.a можно собирать с любыми проектами для MinGW на платформе Win32)
$ cd Wrapper/FreeImagePlus/src/
$ ls -1 *.cpp | xargs -n1 -I{} i586-mingw32msvc-g++ -c -o {}.obj {} -I.. -I ../../../Source
$ ls -1 *.obj | wc -l
7
$ i586-mingw32msvc-g++ -shared -o FreeImagePlus.dll *.obj -Wl,--out-implib,libfreeimageplus.a -L. -lfreeimage
....
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x7b4): undefined reference to `_BitBlt@36'
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x81a): undefined reference to `_SelectObject@8'
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x826): undefined reference to `_DeleteObject@4'
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x834): undefined reference to `_DeleteDC@4'
....
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x120c): undefined reference to `__imp___ZN8fipImageC2E15FREE_IMAGE_TYPEjjj'
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x1216): undefined reference to `__imp___ZTV11fipWinImage'
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x12a8): undefined reference to `__imp___ZN8fipImageC2E15FREE_IMAGE_TYPEjjj'
fipWinImage.cpp.obj:fipWinImage.cpp:(.text+0x12b2): undefined reference to `__imp___ZTV11fipWinImage'
(libfreeimageplus.a собралось, а вот FreeImagePlus.dll слинковаться не смогло; в принципе, мне этого пока достаточно)
P.S. Под виндой, в среде Visual Studio 2010 Express (C++), не получается открыть и сконвертировать файлы проектов от 2003, 2005 и 2008-й студий - IDE ругается на формат xml-файла проекта. MinGW32 (Dev-Cpp и Code::Blocks) также не собирает по имеющемуся Makefile.mingw (под Windows).
Поэтому собрал под Linux'ом (со второго раза).
Кстати, если кто-то подскажет, как слинковать FreeImagePlus.dll — буду благодарен.