Gå til innhold

undefined reference to


ProXymus

Anbefalte innlegg

Har noen problemer når jeg kompilerer programmer på Debian maskinen min.. På veldig mange av programmene jeg kompilerer kommer slike feilmeldinger som disse:

expertuserdlg.o(.text+0x87): undefined reference to `__builtin_new'

expertuserdlg.o(.text+0xb0): undefined reference to `__builtin_new'

expertuserdlg.o(.text+0x134): undefined reference to `__builtin_new'

expertuserdlg.o(.text+0x172): undefined reference to `__builtin_new'

expertuserdlg.o(.text+0x1f1): undefined reference to `__builtin_new'

./.libs/libfilesharesamba.a(expertuserdlg.o)(.text+0x22f): more undefined references to `__builtin_new' follow

./.libs/libfilesharesamba.a(expertuserdlg.o): In function `ExpertUserDlg type_info function':

expertuserdlg.o(.gnu.linkonce.t.__tf13ExpertUserDlg+0x36): undefined reference to `__rtti_class'

collect2: ld returned 1 exit status

alltid et eller annet med "undefined reference to"

Hva menes med denne feilmeldingen? hva må jeg evt gjøre for å rette opp i det?

Endret av ProXymus
Lenke til kommentar
Videoannonse
Annonse

Dette er fra et annet program jeg prøver å kompilere (for å se likhetene):

.libs/koptionsdlgs.o(.text+0x7e): undefined reference to `__builtin_new'

.libs/koptionsdlgs.o(.text+0xad): undefined reference to `__builtin_new'

.libs/koptionsdlgs.o(.text+0xd7): undefined reference to `__builtin_new'

.libs/koptionsdlgs.o(.text+0x103): undefined reference to `__builtin_new'

.libs/koptionsdlgs.o(.text+0x187): undefined reference to `__builtin_new'

.libs/koptionsdlgs.o(.text+0x1b1): more undefined references to `__builtin_new' follow

.libs/koptionsdlgs.o: In function `KOptionsDlgS type_info function':

.libs/koptionsdlgs.o(.gnu.linkonce.t.__tf12KOptionsDlgS+0x36): undefined reference to `__rtti_class'

collect2: ld returned 1 exit status

Lenke til kommentar

Man får som regel "Undefined references" når et program ikke har blitt linket sammen med alle de bibliotekene det skulle blitt (den finner headeren, derfor får man ingen feilmelding under kompileringen, men når linkinga er ferdig ser den at den har nettopp undefined references - funksjoner som skulle eksistert men ikke gjør det).

 

Et kjapt søk på google kan tyde på at den funksjonen stammer fra /usr/lib/libstdc++ eller libc6.1-1.so.2 eller noe lignende. Du kan f.eks. prøve å reinstallere disse (husk ldconfig).

 

Det finnes sikkert noen fancy debugger options som gjør at man kan hente fram navnet på biblioteket som funksjonen kommer fra, men såpass hardcore får noen andre være ;)

Lenke til kommentar

Dette har ikke noe med gcc å gjøre. gcc og ld (linkeren) gjør jobben sin som de skal, men det er et bibliotek de ikke finner [pga: 1) du har det ikke installert, 2) det ligger på feil plass, 3) feil versjon er installert, 3) konfigurasjonsfilene for ldconfig er feil satt opp, e.l].

 

Du får søke på google eller debian sin mailingliste. Jeg ville tro en reinstallering av noen lib-pakker (en som inneholder libstdc++ f.eks.) kanskje vil fikse problemet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...