[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Undefined reference to `cos' (och allt annat i math.h)



Någon vänlig Linux-själ som kan hjälpa en C-nybörjare att komma igång?

#include <math.h>

main()
{
   double i = 1;

   if ( i > cos(i) )
     i = sqrt(i);
     return 0;
}

Kompilerat med:

gcc -o dum dum.c

Eller:

make dum

Ger felen:

/tmp/cca070731.o: In function `main':
/tmp/cca070731.o(.text+0x1b): undefined reference to `cos'
/tmp/cca070731.o(.text+0x35): undefined reference to `sqrt'

Enligt http://www.eskimo.com/~scs/cclass/notes/sx3f.html (Steve Summit)
gör jag helt rätt i denna nedbantade version av hans exempel.
Lektionerna rör sig kring portabel kod, så det borde inte bli problem
med Linux. Och jag har än så länge inte stött på patrull i stdio.h
(printf etc) utan felen kommer när jag försöker använda funktioner i
math.h.

Först trodde jag att math.h var "sönder", men efter att ha kompilerat
xlander utan svårighet - som ju använder mängder av matte; cos, sqrt osv
- står jag villrådig.

Mitt system: Slackware 4.0 distributionen av GNU Linux (2.2.6 kärnan);
"lib5", eller vad det nu kallas, som bas; på en Intel P75. gcc version
2.7.2.3. GNU ld version 2.9.1 (with BFD 2.9.1.0.19). GNU Make version
3.76.1.

Tacksam för svar eller förslag, om nu någon orkar avvara ett par
minuters "real life time" på detta.

För de som har oceaner av tid till sitt förfogande, och är intresserade
av nät-människor, vill jag presentera mig själv för
sslug-cprog-gruppen... Jag tillhör den artiga generationen ;-)

_Kort version_
Namn: Mats Johannesson. Ålder: Hrrmmm... 39-någonting... Kön: Jodå.
Boplats: Lund. Utbildning: Massor. Intressen: Hård & mjuk PC-vara, lite
elektronik, humaniora/samhälle och litteratur.

_Lång version_
Datorer... Som fullständigt ointresserad humanist köpte jag 1989 en
kraftfull skrivmaskin (PC-XT 8086), Amber monoskärm/Hercules skärmkort
och 20 meg HD för ca 20.000 SvKr - 9-nålars skrivare ingick... När
(häst)handlaren månaden därpå sålde 286-or för samma pris svor jag att
aldrig mer _köpa_ en dator.

Men själva fenomenet började intressera mig. Efter att ha låtit en
datakunnig bekant installera och konfigurera systemet (MSDOS v3.21)
läste jag igenom handboken, från pärm till pärm, och lärde mig alla
kommandon. Blev dock en aning besviken. Man kunde ju inte göra särskilt
mycket... alltså, ni vet göra... Programmering fanns inte ens i min
begreppsvärld så Basic-tolken vågade jag inte röra.

Först när jag köpt ett 2400-modem blev det hela lite roligare genom
BBS-världen och Fidonet! Mängder av program att hämta hem, och
diskussioner att delta i. Teleräkningen blev dock därefter... 

Något år senare brann traffon upp (naturligtvis efter det att garantin
gått ut). 386-or var nu så vanliga att en Fido-vän skänkte mig sin gamla
286-a. I samband med bytet upptäckte jag "schack"-spelet Cripple-Ware
<--> Cracking. Lärde alltså assembler för att leka på den arenan.
Knäckte det jag ville knäcka men spred aldrig "patchar" (förutom ett par
småsaker). Började titta på C men blev snabbt avskräckt. Måsvingar {
paranteser ( hakar [ och semikolon ; till förbannelse. Alltid något som
saknades eller var felplacerat. Dessutom gillade jag den maskinnära
miljö assembler gav mig. Flödeskontrollen kändes därutöver ren, lätt och
logisk. Visserligen svor man en aning vid "jump out of range by 15
bytes", men...

Så går det ett antal år... många år... Juletid 1998 erbjuds jag en
mycket snabb 386-a (AMD 40-Mhz), 16 meg minne plus VGA-skärm/kort för 0
SvKr! Tackar tackar. Och Win95 _gick_ att köra på det systemet. Fast jag
tillbringade mest tid i "det där svarta" (som en del användare kallar
DOS-prompten). För nu skulle det bli grafik-programmering av! Äntligen
kunde jag skicka saker direkt till skärmminnet utan krångel - Hercules
hade varit en mardröm att arbeta mot, så det slutade jag snabbt med. Och
två-färg är inte särskilt upphetsande.

Grafik leder snabbt till 3D... Fick en tvåveckors e-mailkurs av en
norrman som lärde mig grunderna för att snurra en lätt ljussatt kub.
Fixed point, vektorer, normaler, klippning etc. Studerade sedan matriser
och kameror mm på egen hand. Fast det var svårt. Svårt att översätta
C-sås-exempel till assembler när man inte förstår C.

Sedan var det dags för ytterligare en (skänkt) uppgradering av
hårdvaran. Denna sommar fick jag ett Intel P75-kort, 16 meg minne, två
stycken 200-meg HD (som komplement till den 170-meggare jag redan hade).
Installerade Win95 igen...

Men så en dag för tre månader sedan gick det inte längre. Jag satt och
skrev en timer-rutin för att "hooka" interrupt-vektorn utan att störa
systemets egen klocka när det slog mig: DOS är dött! Varför ägna tid åt
ett så begränsat och dött system? Win95-miljön var inget verkligt
alternativ och NT... aldrig.

Plockade hem Linux från nätet (över ett 14.4 modem :-) Jag saknar ju
CDROM-enhet... Suddade Win95, installerade Xfree86 och WindowMaker.
Underbart! Efter att ha läst Assembly-HOWTO beslöt jag att gå över till
C. Och där står jag idag. Total nybörjare som vill rita 3D i ett
X-fönster.

Vänligen,
Mats Johannesson


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:07 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *