
|
 |
Cannot find shared object files
|
|
Noen ganger får jeg besjeder som "cannot find shared object files". Hvordan kan jeg finne ut hvilke "shared object files" jeg må skaffe meg? Og andre ganger når jeg skal kompilere et program (i dette tilfellet
pppoe) får jeg besjeder som "In file included from
/usr/include/netinet/in.h:212, from pppoe.h:134, from pppoe.c:17:
/usr/include/bits/socket.h:298: asm/socket.h: No such file or directory"
Hva gjør man da? Jeg bruker Slackware 8.0
Håvard
Hei
Shared objects files er delte biblioteker, noe som tilsvarer dll filer i Windows. Det er fullt mulig å finne ut hvilke av disse filene du mangler, men i et "standard" Slackware operativsystem bør de aller fleste vanlige bibliotekene følge med, og de du eventuellt trenger ekstra til en programpakke står som regel i dokumentasjonen til programmet.
For å finne ut hvilke biblioteker, kan du bruke kommandoen ldd, som for eksempel:
[egon@ty egon]$ ldd /bin/ls
libtermcap.so.2 => /lib/libtermcap.so.2 (0x4002d000)
libc.so.6 => /lib/i686/libc.so.6 (0x40031000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
[egon@ty egon]$
Når det gjelder den andre feilmeldingen, så prøver du her å kompilere ppoe. ppoe prøver å inkludere en fil som heter asm/socket.h. Denne hører til kildekoden til Linux og ligger i /usr/src/linux/include/asm, såfremt du har kildekoden til Linux liggende.
Når du kompilerer kan du fortelle maskinen hvor headerfilene er. (headerfilene er de filene som programmet inkluderer under kompileringen)
Make og gcc tar -I som et parameter, mens ./configure som regel tar --include-dir som parameter. Dersom det er et ./configure script, bør man alltid kjøre ./configure --help for å se tilgjengelige opsjoner.
Jeg anbefaler deg å ikke fjerne eller slette filer som du ikke vet hva er på maskinen din. Er det altfor mye som ikke fungerer så bør du reinstallere/oppgradere operativsystemet ditt.
Lykke til!
Eystein

|
 |
|