[Solved][C++] Błąd linkowania w qtcreatorze

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
PeeR
Sędziwy Jeż
Sędziwy Jeż
Posty: 52
Rejestracja: 09 lut 2009, 18:57
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

[Solved][C++] Błąd linkowania w qtcreatorze

Post autor: PeeR »

Witam
Chce użyć biblioteki fann którą mam zainstalowaną. Mój kod programu:

Kod: Zaznacz cały

#include <fann.h>


int main(void)
{
    const unsigned int num_input = 2;
    const unsigned int num_output = 1;
    const unsigned int num_layers = 3;
    const unsigned int num_neurons_hidden = 3;
    const float desired_error = (const float) 0.001;
    const unsigned int max_epochs = 500000;
    const unsigned int epochs_between_reports = 1000;

    struct fann *ann = fann_create_standard(num_layers, num_input, num_neurons_hidden, num_output);

    fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
    fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);

    fann_train_on_file(ann, "and.data", max_epochs, epochs_between_reports, desired_error);

    fann_save(ann, "and_float.net");

    fann_destroy(ann);

    return 0;
}
Gdy kompiluje ręcznie to nie ma problemów wszystko się ładnie kompiluje, robię to tak:

Kod: Zaznacz cały

g++ -lfann -lm main.c -o main
W qt creatorze mój plik *.pro wyglada tak:

Kod: Zaznacz cały

TEMPLATE = app
CONFIG += console
CONFIG -= qt

SOURCES += main.c

LIBS += -lfann -lm
i wywala takie błędy:

Kod: Zaznacz cały

16:36:28: Running steps for project fann_and...
16:36:28: Konfiguracja niezmieniona, krok qmake opuszczony.
16:36:28: Uruchamianie "/usr/bin/make" -w
make: Entering directory `/home/peer7/Programowanie/Qt4/fann_and/fann_and'
/usr/bin/qmake -spec /usr/share/qt/mkspecs/linux-g++ -o Makefile fann_and.pro
make: Leaving directory `/home/peer7/Programowanie/Qt4/fann_and/fann_and'
make: Entering directory `/home/peer7/Programowanie/Qt4/fann_and/fann_and'
g++ -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu -Wl,-O1 -o fann_and main.o     -lfann -lm 
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `sinf'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `cosf'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `sin'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `exp'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `sqrtf'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `cos'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `log'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `pow'
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.0/../../../../lib/libfann.so: undefined reference to `floor'
collect2: error: ld returned 1 exit status
make: Leaving directory `/home/peer7/Programowanie/Qt4/fann_and/fann_and'
make: *** [fann_and] Error 1
16:36:28: Proces "/usr/bin/make" zakończył się kodem wyjściowym 2.
Error while building/deploying project fann_and (target: Desktop)
When executing step 'Make'
No rozchodzi się o to -lm co potwierdza ten wpis na forum:
http://leenissen.dk/fann/forum/viewtopic.php?t=437

Co w takim razie robię źle?
Ostatnio zmieniony 19 maja 2012, 16:35 przez PeeR, łącznie zmieniany 1 raz.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [C++] Błąd linkowania w qtcreatorze

Post autor: ethanak »

a zainstalowana biblioteka runtime, czy devel?
PeeR
Sędziwy Jeż
Sędziwy Jeż
Posty: 52
Rejestracja: 09 lut 2009, 18:57
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Re: [C++] Błąd linkowania w qtcreatorze

Post autor: PeeR »

tzn mam Archa i zainstalowałem z aur tak to wygląda:

Kod: Zaznacz cały

aur/fann 2.2.0-1 [installed] (46)
    Fast artificial neural network library
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [C++] Błąd linkowania w qtcreatorze

Post autor: ethanak »

tzn. to nie forum archa. nie wiem jak się na archu devele instaluje, ale gdybym chciał wiedzieć to ani na onecie, ani na forum fedory bym nie pytał.
PeeR
Sędziwy Jeż
Sędziwy Jeż
Posty: 52
Rejestracja: 09 lut 2009, 18:57
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: KDE Plasma
Architektura: x86
Kontakt:

Re: [C++] Błąd linkowania w qtcreatorze

Post autor: PeeR »

Ale jeśli mi się to kompiluje ręcznie jak pisałem, to z bibliotekami fann musi być wszystko ok. Sprawa rozchodzi się o qtcreator. Myślałem że coś nie tak napisałem w pliku .*pro.

A swoją drogą forum Archa do najbardziej uczęszczanych forów nie należy, dlatego o problemach natury programistycznych wolę pisać tutaj :)

A co do plików dev to w Archu nie ma ich:
http://unix.stackexchange.com/questions ... arch-linux


---------------------------------------
Rozwiązałem problem chodziło o drobiazg :-D. Utworzyłem w qtcreatorze plik main.c zamiast main.cpp :teeh:
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości