[ Predrag Damnjanovic @ 02.10.2002. 17:46 ] @
Code:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
        float f=cos(1.23);
}


# gcc test.c -o test
/tmp/ccVGgwAM.o: In function `main':
/tmp/ccVGgwAM.o(.text+0x16): undefined reference to `cos'
collect2: ld returned 1 exit status

???
Da odmah uklonim sumnju da je math.h na bilo koji nacin ostecen, nije uopste menjan.
Distribucija je slack 8.1
[ Predrag Damnjanovic @ 02.10.2002. 18:17 ] @
Hmmm...
Od kad treba da se doda -lm pri kompajliranju?
Sad radi.
[ Dragoslav Krunić @ 02.10.2002. 18:32 ] @
Koliko ja znam oduvek se dodavalo,...
[ Predrag Damnjanovic @ 02.10.2002. 19:45 ] @
Pod RH nikad.
Evo bas cu uskoro da probam na RH 8.0.
Ili je ovo kod RH-a nesto namesteno, ili Slack koristi noviji gcc.
[ Dragi Tata @ 02.10.2002. 20:00 ] @
Hmmm, ja sam imao isti problem kao ti 1994 sa cc-om koji je išao uz HP-UX 7.0. Nije to ništa novo...
[ alex @ 02.10.2002. 23:23 ] @
Nema nikakve veze sa distribucijom niti sa verzijom unix-a, libm.so (libm.a) nikad nije po default-u linkovan, bar kad je o gcc-u rec.
[ Predrag Damnjanovic @ 03.10.2002. 12:18 ] @
Alex, hoces da se kladimo da na je na RH-u linkovan po defaultu? :)
Nemam trenutno RH, ali dobro znam o cemu pricam.
Engine sam razvijao na njemu, koristi cos i sin, i dobro znam kako sam ga kompajlirao.
[ Dragan @ 03.10.2002. 13:37 ] @
Alex, kladi se! :)
Kod mene RH 7.2 i mora -lm...
[ filmil @ 03.10.2002. 14:05 ] @
Citat:
Predrag Damnjanovic:

# gcc test.c -o test
/tmp/ccVGgwAM.o: In function `main':
/tmp/ccVGgwAM.o(.text+0x16): undefined reference to `cos'
collect2: ld returned 1 exit status


Predraže,

moraš obavezno dodati linkersku opciju -lm za linkovanje matematičke
biblioteke, ali obavezno na kraj komandne linije, ne u sredinu ili na
početak. Tako će sve biti u redu.

Dakle

Code:

# gcc -o test test.c -lm


Ne zaboravi takođe da pod UNIX-om postoji program /usr/bin/test koji je obično u PATH-u pre trenutnog direktorijuma tako da ćeš program morati da pokreneš sa:

Code:

# ./test


Pozdrav,
f
v.d. gcc psihijatar :)


p.s. E, da, mislim da je default skript za g++ (dakle za c++ kompajler pri gcc-u namešten tako da po defaultu linkuje i libm), možda otud ona tvrdnja da -lm nije potreban.

[ alex @ 03.10.2002. 14:11 ] @
Citat:
Predrag Damnjanovic:
Alex, hoces da se kladimo da na je na RH-u linkovan po defaultu? :)


Hocu da se kladim - RH koristim veoma dugo (jos od 4.2) i znam o cemu pricam.
[ Predrag Damnjanovic @ 03.10.2002. 14:32 ] @
Citat:
filmil:
Ne zaboravi takođe da pod UNIX-om postoji program /usr/bin/test koji je obično u PATH-u pre trenutnog direktorijuma tako da ćeš program morati da pokreneš sa:

Code:

# ./test


U jeeeee, nisam znao :)

Alex, u sta se kladimo :)
[ filmil @ 03.10.2002. 15:28 ] @

Zahvaljujem.

f
[ alex @ 03.10.2002. 15:46 ] @
Citat:
Predrag Damnjanovic:
Alex, u sta se kladimo :)


Evo, probao sam na par masina kod mene:

Code:

login as: alex
Sent username "alex"
[email protected]'s password:
Last login: Thu Oct  3 14:33:57 2002 from rsp05.landspitali.is
[alex@postur alex]$ cat /etc/redhat-release
Red Hat Linux release 7.0 (Guinness)
[alex@postur alex]$ vi zastita.c
[alex@postur alex]$ gcc -o zastita zastita.c
/tmp/cceqD6ej.o: In function `main':
/tmp/cceqD6ej.o(.text+0x14): undefined reference to `cos'
collect2: ld returned 1 exit status
[alex@postur alex]$


To je bio RH 7.0

Code:

login as: alex
Sent username "alex"
[email protected]'s password:
Last login: Thu Oct  3 14:40:47 from rsp05.landspitali.is
[alex@apache alex]$ cat /etc/redhat-release
Red Hat Linux release 7.3 (Valhalla)
[alex@apache alex]$ gcc -o zastita zastita.c
/tmp/cc8sJCDm.o: In function `main':
/tmp/cc8sJCDm.o(.text+0x14): undefined reference to `cos'
collect2: ld returned 1 exit status
[alex@apache alex]$


To je bio RH 7.3

Trenutno nisam na poslu, pa ne mogu da se ulogujem na jos dve masine (RH 7.1 i RH 7.2), ali cu biti u firmi za par sati, pa cu i to probati i poslati ti rezultate.

Mada, zasigurno to nije ni potrebno, cim se libm.so ne linkuje po defaultu ni na 7.0 ni na 7.3..

Pozdrav,
alex.
[ alex @ 03.10.2002. 15:49 ] @
Kao sto rece filmil, po libm.so se po defaultu linkuje samo sa g++:
Code:

[alex@apache alex]$ g++ -o zastita zastita.c
[alex@apache alex]$


Inace, Peco, mozemo se kladiti u sta god hoces..
[ Predrag Damnjanovic @ 03.10.2002. 15:56 ] @
Javicu ti se kad instaliram RH.