logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Eclipse Indigo - Błąd kompilacji C, undefined reference to `cosf`

kamil1cos7 03 Paź 2012 18:58 4725 9
REKLAMA
  • #1 11373882
    kamil1cos7
    Poziom 14  
    Posty: 140
    Pomógł: 1
    Ocena: 5
    Witam,
    Mam problem z Eclipse, a mianowicie z dodaniem biblioteki tgmath.h. Program pisany w języku C, wersja eclipse to Indigo a efekt próby kompilacji poniżej:

    make all
    Building target: my_fft
    Invoking: Cross GCC Linker
    gcc -lm -o "my_fft" ./mian.o
    ./mian.o: In function `main':
    /home/kamilson/workspace/my_fft/Debug/../mian.c:7: undefined reference to `cosf'
    collect2: ld returned 1 exit status
    make: *** [my_fft] Error 1

    Pozdrawiam,
    Kamil
  • REKLAMA
  • #2 11375521
    Konto nie istnieje
    Konto nie istnieje  
  • #3 11376013
    kamil1cos7
    Poziom 14  
    Posty: 140
    Pomógł: 1
    Ocena: 5
    Kod jest najprostszy z możliwych chyba...

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    #include <stdio.h>
    #include <tgmath.h>

    int main(void) {
    float as = 3.14;

    printf("cos (3,14) = %f", cos(as));

    return 0;
    }
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #5 11378916
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #6 11380250
    kamil1cos7
    Poziom 14  
    Posty: 140
    Pomógł: 1
    Ocena: 5
    #gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
    Target: i686-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
    Thread model: posix
    gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

    Dodanie <math.h> nie pomaga... próbowałem tego już... Dodałem także wcześniej -lm dla linkera, ale też nie pomaga... Stworzeni projektu od początku także nie pomaga. Przeinstalowanie eclipse także nic nie daje...

    @blue_17
    Kliknięcie dyskietki przed kompilacją?? Nie mierz wszystkich swoją miarą... ok?
  • REKLAMA
  • #7 11380485
    Konto nie istnieje
    Konto nie istnieje  
  • #8 11380638
    kamil1cos7
    Poziom 14  
    Posty: 140
    Pomógł: 1
    Ocena: 5
    Próbowałem właśnie już wcześniej skompilować z linii poleceń i przechodzi... Mi chodzi o zmuszenie Eclipse
    żeby skompilowało... A właśnie w Eclipse jest opcja tak jak mówiłem żeby dodać tą opcje -lm ale nie mogę się dopatrzyć żeby wstawić tę opcję na koniec linii...
  • Pomocny post
    #9 11380720
    Konto nie istnieje
    Konto nie istnieje  
  • #10 11380898
    kamil1cos7
    Poziom 14  
    Posty: 140
    Pomógł: 1
    Ocena: 5
    Dzięki wielkie:)

    Działa jak trzeba... tam trzeba było tylko dodać literkę 'm' żeby wszystko było ok :P

    Jeszcze raz dziękuje za pomoc!

    Pozdrawiam,
    Kamil

Podsumowanie tematu

✨ Użytkownik napotkał problem z kompilacją programu w Eclipse Indigo, który korzysta z biblioteki tgmath.h. Błąd "undefined reference to `cosf`" wystąpił podczas linkowania. Po wymianie informacji, zasugerowano dodanie nagłówka przed oraz upewnienie się, że opcja -lm jest umieszczona na końcu linii poleceń kompilacji. Ostatecznie, użytkownik rozwiązał problem, dodając literę 'm' do opcji linkera w ustawieniach Eclipse, co pozwoliło na pomyślną kompilację programu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA