undefined reference to constructor

Tags:    c++

<< < 12 > >>
Hej hej

Jeg har rodet lidt med følgende fejl i lidt tid nu,

Fold kodeboks ind/udKode 


min kode er:

socket.h
Fold kodeboks ind/udKode 


socket.cpp
Fold kodeboks ind/udKode 


test.cpp
Fold kodeboks ind/udKode 


Har postet et tilsvarende spørgsmål på eksperten.dk, dog med en lidt andet klasse struktur, men stadig samme fejl som gælder. Jeg kan ikke helt forstå hvorfor jeg får den, for jeg synes selv at jeg gør det rigtige når jeg erklære min konstruktør.

På forhånd tak



Indlæg senest redigeret d. 19.04.2006 20:05 af Bruger #1151
20 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Har du en job.cpp?



Hehe nej det havde jeg ikke, men den lavede jeg og det ser ud til at køre nu, på nær en fejl,

Fold kodeboks ind/udKode 


altså i ld er den sidste parameter jo socket.exe, som du skriver skal være med i din artikel. Fjerner jeg den, så bliver jeg bombet med en fejlmeddelelse som nok er længere en Dantes værker.



Det skal nok være

ld abstractSocket.o socket.o test.o job.o -o socket.exe

eller

g++ abstractSocket.o socket.o test.o job.o -o socket.exe



Jo tak. Kunne jeg vist også godt selv ha regnet ud.
Men nu får jeg så Dantes store fejlmeddelelse. Jeg vil ikke poste den her, men jeg synes nu starten er lidt interessant,

[code][ld abstractSocket.o socket.o test.o job.o
ld: advarsel: kan ikke finde indgangssymbol _start; bruger som standard 0000000008048094/code]



Det ser ud somom du mangler den fil hvori main() befinder sig.



den ligger jo netop i test.cpp,

min makefile ser sådan her ud

Fold kodeboks ind/udKode 




Prøv at bytte ld ud med g++ og/eller slet alle .o filer og prøv igen.

Hvis det ikke virker så prøv at lave en .zip fil, så kan jeg prøve at bygge (med mingw på windows).



skiftede ld ud med g++. Nu virker det. Dog kan jeg ikke bruge clean da den brokker sig over at filerne ikke er der, uden dog at begynde med at kompile først (så kan jeg godt forstå det)




Du kan bruge - foran rm, så ignorer den fejl.

Så vidt jeg husker kan du også bruge rm -f for at få den til at undlade at rappotere om filer der ikke er der.




Ser stadig ikke ud til at den gider fjerne min .o filer, men det gør nu ikke noget, for det her virker meget fint lige nu. Endelig lærte jeg at lave de makefiles. Har jeg godt nok ønsket at lære i lang tid.

Kast et svar og få points.



<< < 12 > >>
t