środa, 7 marca 2012

Kompilacja jFuzzyQt w środowisku Windows

Szukając biblioteki w C++ przeznaczonej do obsługi logiki rozmytej (Fuzzy Logic) trafiłem na jFuzzyQt. Nazwa jest trochę dziwna ponieważ jFuzzy ma nam przypominać jFuzzyLogic - bibliotekę Java'ową, a Qt oznacza, że została ona napisana w Qt. Dlaczego właśnie ta biblioteka? Ponieważ nadal jest rozwijana i w domyśle da się ją zbudować w systemie Windows.

Poniżej opiszę proces kompilacji.
UWAGA: Nie będzie tu przedstawiona żadna wiedza tajemna. Proces kompilacji nie jest trudny. Zapisuję to na blogu aby samemu nie zapomnieć.


Aby rozpocząć pracę musimy mieć odpowiednio przygotowane środowisko. Po pierwsze instalujemy Qt oraz Visual Studio.
Pobieramy pliki źródłowe biblioteki:
svn co https://jfuzzyqt.svn.sourceforge.net/svnroot/jfuzzyqt jfuzzyqt
Przechodzimy w konsoli do katalogu jfuzzyqt (cd jfuzzyqt)
Podczas próby zbudowania biblioteki za pomocą qmake wyświetla nam ostrzeżenia. Możemy je usunąć zmieniając plik jfuzzyqt.pro. W liniach 15 - 25 oraz 29 - 39 zmieniamy znak \ na / w ścieżkach do folderów (nie zmieniając \ na końcach).
Budujemy projekt za pomocą qmake (jeśli nie dodaliśmy ścieżki do PATH) wywołująć:
<sciezka_do_folderu_Qt>\Desktop\Qt\4.8.0\msvc2010\bin\qmake.exe

Dla potrzeby kilku następnych linij założymy, że Visual Studio zainstalowane jest w katalogu C:\Program Files (x86)\Microsoft Visual Studio 10.0\
Wywołujemy:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvrs32.bat" aby ustawić w konsoli potrzebne zmienne systemowe. A następnie:

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\nmake.exe" aby dokończyć proces kompilacji.
Tutaj małe słowo wyjaśnienia. Próbowałem zbudować bibliotekę wykorzystując zwykłego make'a (GnuWin32), jednak nie udawało się. Pomogło natomiast zastosowanie nmake z Visual Studio.

W wyniku naszych działać w katalogu build znajdziemy potrzebne nam pliki jfuzzyqt.dll oraz jfuzzyqt.lib. Warto również zaopatrzyć się w plik jfuzzyqt.h (z katalogu include) oraz common.h (z src).