Gå til innhold

Kompilering. Noen tips? Bra sider?


ProXymus

Anbefalte innlegg

Har Slackware 10.0 som distro og de meste program jeg installerer, installerer jeg som oftest fra source. Da må jeg alltid konfigurere, kompilere og installere programmene. Konfigurering har jeg hatt mye trøbbel med før. Men nå har jeg skjønt det meste av det med bibloteker o.l så det går ganske greit. Men nå i det siste har jeg hatt endel problemer med kompileringa. Og jeg syns feilmeldingene jeg får under kompilering kan være ganske vansklige å forstå. Som f.eks når jeg prøver å kompilere hele kde med konstruct klikker den når den kommer til "kdemultimedia" og sier:

In file included from tag.cpp:22:

/opt/kde/include/taglib/mpegfile.h:134: error: conflicting return type

  specified for `virtual bool TagLib::MPEG::File::save()'

/usr/include/taglib/tfile.h:84: error:  overriding `virtual void

  TagLib::File::save()'

In file included from tag.cpp:23:

/opt/kde/include/taglib/vorbisfile.h:86: error: conflicting return type

  specified for `virtual bool TagLib::Vorbis::File::save()'

/usr/include/taglib/oggfile.h:76: error:  overriding `virtual void

  TagLib::Ogg::File::save()'

In file included from tag.cpp:24:

/opt/kde/include/taglib/flacfile.h:114: error: conflicting return type

  specified for `virtual bool TagLib::FLAC::File::save()'

/usr/include/taglib/tfile.h:84: error:  overriding `virtual void

  TagLib::File::save()'

make[5]: *** [tag.o] Error 1

Slike feil skjønner jeg nesten ALDRI hva jeg skal gjøre med. Har hatt masse andre problemer under kompilering av andre program også og jeg forstår INGEN av dem.

 

Så fins det noen bra sider med tips rundt dette eller lignende? Tar imot alle former for hjelp :p

Lenke til kommentar
Videoannonse
Annonse

Post mer output ja...

 

Det ser ut som typekonflikter, og det kan ha med at du installerer pakkene i feil rekkefølge (prøver å kompilere ny kdemultimedia mot gammel kdelibs).

 

Pass på at at du installerer arts, kdelibs og kdebase i den rekkefølgen slik at nye oppdaterte headerfiler er på plass før du installerer noen av de andre pakkene.

 

Ikke gjør dette mens X kjører, gå til runlevel 3 og installer fra konsoll, kan ikke installere over filer som er i bruk vettu ;)

Lenke til kommentar
Post mer output ja...

 

Det ser ut som typekonflikter, og det kan ha med at du installerer pakkene i feil rekkefølge (prøver å kompilere ny kdemultimedia mot gammel kdelibs).

 

Pass på at at du installerer arts, kdelibs og kdebase i den rekkefølgen slik at nye oppdaterte headerfiler er på plass før du installerer noen av de andre pakkene.

 

Ikke gjør dette mens X kjører, gå til runlevel 3 og installer fra konsoll, kan ikke installere over filer som er i bruk vettu ;)

Sikker? Burde ikke "konstruct" gjøre dette riktig automatisk? Men jeg kan jo prøve å kompilere uten å logge på kde. Tror faktisk ikke jeg har prøvd det :p

Poster mer output så fort jeg kommer hjem.

Endret av ProXymus
Lenke til kommentar

Hvis man kjører "make install" på en ny kdelibs og kdebase mens KDE (linket mot gammel kdelibs) fortsatt kjører er ikke nødvendigvis problemfritt nei... da blir ld sint på deg :mad:

 

Riktig fremgangsmåte skal være å gå i tekstmodus og avinstallere gammel KDE (inkludert slette [home]/.kde) først om man på død og liv skal kompilere ny selv. (det finnes noen som fortsatt gidder)

Lenke til kommentar

Nå har jeg iallefall kommet et steg videre :p

nå sier den:

 

In file included from /usr/include/linux/cdrom.h:14,

                from cdromAccess_Linux.cpp:17,

                from cdromAccess.cpp:33:

/usr/include/asm/byteorder.h:38: error: syntax error before `(' token

/usr/include/asm/byteorder.h:42: error: '__u64' is used as a type, but is not

  defined as a type.

/usr/include/asm/byteorder.h:43: error: parse error before `}' token

/usr/include/asm/byteorder.h:44: error: syntax error before `.' token

/usr/include/asm/byteorder.h:50: error: syntax error before `.' token

/usr/include/asm/byteorder.h:51: error: syntax error before `.' token

/usr/include/asm/byteorder.h:52: error: parse error before `:' token

In file included from /usr/include/linux/byteorder/little_endian.h:11,

                from /usr/include/asm/byteorder.h:65,

                from /usr/include/linux/cdrom.h:14,

                from cdromAccess_Linux.cpp:17,

                from cdromAccess.cpp:33:

/usr/include/linux/byteorder/swab.h:199: error: syntax error before `(' token

/usr/include/linux/byteorder/swab.h:209: error: syntax error before `(' token

/usr/include/linux/byteorder/swab.h:213: error: `__u64' was not declared in

  this scope

/usr/include/linux/byteorder/swab.h:213: error: `addr' was not declared in this

  scope

/usr/include/linux/byteorder/swab.h:214: error: variable or field `__swab64s'

  declared void

/usr/include/linux/byteorder/swab.h:214: error: `__swab64s' declared as an

  `inline' variable

/usr/include/linux/byteorder/swab.h:214: error: syntax error before `{' token

make[6]: *** [cdromAccess.lo] Error 1

osv...

Endret av ProXymus
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...