Wnioskując ze ścieżki dostępu i nazwy biblioteki próbujesz używać wersji prebuilt (MSVC). Nie zadziała ona z GCC (zweryfikowane). Dlaczego można sprawdzić poniżej:
http://www.mingw.org/wiki/Interoperability_of_Libraries_Created_by_Different_Compiler_BrandsNajpierw musisz zbudować biblioteki FANN samemu. W tym celu ściągnij:
https://cmake.org/download/Podczas instalacji automatycznie dodaj ścieżkę do CMake do zmiennej środowiskowej PATH. Po zakończeniu instalacji dodaj do systemu dwie zmienne środowiskowe:
CC gcc.exe
CXX g++.exe
Dzięki nim CMake wie jakich kompilatorów używać. Następnie z wiersza poleceń wejdź do katalogu, do którego rozpakowałeś FANN i po kolei wykonaj dwa polecenia:
cmake . -G "Eclipse CDT4 - MinGW Makefiles"
mingw32-make
Wejdź do podkatalogu examples i ponownie uruchom:
mingw32-make
Zauważ, że xor_sample.cpp (przykładowy program, korzystający z FANN Wrapper for C++, którego próbujesz używać) nie został włączony do Makefile i skompilowany. O tym dalej. Biblioteki znajdują się w podkatalogu src (należy je dodatkowo skopiować do katalogu examples jeżeli chcesz bezproblemowo uruchamiać przykłady). Teraz w Eclipse (należy zmienić ścieżki dostępu na odpowiadające twojej instalacji):
Menu File -> New -> C/C++ Project
Okno Templates for New C++ Project
C++ Managed Build
Next
Okno C++ Project
Project name: fanncpptest
Project type: Executable -> Empty Project
Toolchains: MinGW GCC
Next
Okno Select Configuration
Advanced Settings...
Okno Properties for fanncpptest
C/C++ Build -> Configuration -> [ All configurations ]
C/C++ Build -> Settings:
GCC C++ Compiler - > Include paths (-I) -> Add C:\MinGW\FANN\src\include
MinGW C++ Linker -> Libraries (-l) -> Add libfloatfann
MinGW C++ Linker -> Library search path (-L) -> Add C:\MinGW\FANN\src
Apply and Close
Okno Select Configuration
Finish
Menu Project -> Build Configurations -> Set Active -> Release
Do projektu dodajesz nowy plik źródłowy z twoim kodem (pamiętaj o #include "floatfann.h", #include "fann_cpp.h") i Build All.
Dobra wiadomość:
21:14:03 **** Rebuild of configuration Release for project fanncpptest ****
Info: Internal Builder is used for build
g++ "-IC:\\MinGW\\FANN\\src\\include" -O3 -Wall -c -fmessage-length=0 -o fanncpptest.o "..\\fanncpptest.cpp"
g++ "-LC:\\MinGW\\FANN\\src" -o fanncpptest.exe fanncpptest.o -llibfloatfann
21:14:06 Build Finished. 0 errors, 0 warnings. (took 3s.806ms)
Zła wiadomość:
FANN Wrapper for C++ jest jedynie obiektowym interfejsem do biblioteki napisanej w C i powoduje problemy (uruchom swój przykład lub skompiluj i uruchom xor_sample.cpp i sprawa stanie się jasna). Można poczytać o tym m. in. poniżej:
https://sourceforge.net/p/fann/discussion/323465/thread/4eda08c1/https://sourceforge.net/p/fann/discussion/323465/thread/79e654cf/?limit=25http://leenissen.dk/fann/forum/viewtopic.php?f=1&t=735&sid=68f7be1c7e94325adbcfe6e4e5a9f61ePoza tym metoda create_standard() w dokumentacji uznana jest za przestarzałą (co nie znaczy, że nie powinna działać) i zamiast niej powinno używać się konstruktorów. Więc możesz zacząć się bawić debuggerem albo skorzystać bezpośrednio z C API biblioteki, które po wstępnych oględzinach działa poprawnie.
W razie problemów możesz jeszcze spróbować dodać do systemu następujące zmienne środowiskowe, a jeżeli już tam są to je edytować (ponownie zmieniając ścieżki dostępu na odpowiadające twojej instalacji):
C_INCLUDE_PATH C:\MinGW\FANN\src\include
CPATH C:\MinGW\FANN\src\include
CPLUS_INCLUDE_PATH C:\MinGW\FANN\src\include
LIBRARY_PATH C:\MinGW\FANN\src
OBJC_INCLUDE_PATH C:\MinGW\FANN\src\include
Na marginesie ten ostatni zabieg często się sprawdza przy korzystaniu z bibliotek zewnętrznych i MinGW GCC.