[#1] [C, VBCC] math.h
Witam,

Mam problem z tak prostą rzeczą jak inkludowanie math.h i użycie standardowej funkcji ceil().

#include 
#include 

int main()
 {
 printf("%f", ceil( 10/8 ) );
 return(0);
 }




New Shell process 6
Ram Disk:> vc DH1: Dev/vbcc/prg/test_include.c -o ram:test
t_6_0.o: In "_main":
Error 21: t_6_0.o (CODE+0xa): Undefined reference to _ceil.
vlink failed returncode 20
vlink -s -x -R -dn vlibm68k:startup.o "T:t_6_0.o" -lvc -lamiga -o ram:test failed
Ram Disk:>

Z funkcjami z np. stdlib.h nie mam takich problemów. O co chodzi? Sprawdzałem nawet czy w ogóle mam math.h w odpowiednim katalogu w katalogu głowneym VBCC i jest tam.



Ostatnia modyfikacja: 06.01.08 16:41
[#2] Re: [C, VBCC] math.h

@R-Tea, post #1

musisz sie zlinkowac z odpowiednia biblioteka. -lm (albo -lmath, nie pamietam teraz)

[#3] Re: [C, VBCC] math.h

@kiero, post #2

Znaczy się w shellu przy kompilacji mam to dopisać? Np. vc test.c -lmath -o ram:test ?
A adlaczego biblioteka stdlib.h nie potrzebuje takich zabiegów?
[#4] Re: [C, VBCC] math.h

@R-Tea, post #3

Potrzebuje. Zrób printf("%f",zmienna_double); a się zdziwisz...

[#5] Re: [C, VBCC] math.h

@R-Tea, post #3

przy koncowym linkowaniu projektu. w twoim przypadku jest to tez proces kompilacji wiec robisz to tak:

vc test.c -o ram:test -lmath

w gcc biblioteki podaje sie na koncu zeby linker wiedzial czego potrzebuje. nie wiem jak jest w vbcc. a dla stdlib nie potrzebujesz bo najwidoczniej kompilator sam dolacza libc.

[#6] Re: [C, VBCC] math.h

@Kaczus, post #4

Zdziwiłem się, bo wyświetlił mi 4 zera po przecinku, a ja chciałem mieć liczbę bez ułamka, nawet zerowego :)
Zrobiłem tak

#include 
#include 

int main()
 {
   double a = 10.8;

 printf("%ld", (long)ceil(a));
 return(0);
 }


I już jest ok.
[#7] Re: [C, VBCC] math.h

@kiero, post #5

Dzięki za pomoc. Przeszukałem domumentację VBCC i postanowiłem wybróbować -lmieee

Ram Disk:> vc DH1: Dev/vbcc/prg/test_include.c -lmieee -o ram:test

Teraz wszystko gra :)



Ostatnia modyfikacja: 06.01.08 18:29
[#8] Re: [C, VBCC] math.h

@kiero, post #5

w gcc biblioteki podaje sie na koncu zeby linker wiedzial czego
potrzebuje.


Ile ja się swego czasu nakombinowałem, żeby na to wpaść. ;) Nie
chciało mi zlinkować, a nagorsze było to, że na piewszy rzut oka
wszystko wyglądało OK. Aż w końcu wygłówkowałem, że chodzi tu o
kolejność...

[#9] Re: [C, VBCC] math.h

@R-Tea, post #7

-lmieee najprawdopodobniej bedzie uzywal systemowych bibliotek matematycznych. ma to wady i zalety. z zalet to to, ze program bedzie dzialal na komputerach bez koprocesora (musi byc tez oczywiscie odpowiednio skompilowany) oraz bedzie najprawdopodobniej nieco mniejszy. z wad to oczywiscie szybkosc dzialania.

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem