Minulla on vanhassa koneessa 32-bittinen Linux. Olen tehnyt sillä lähinnä softakehitystä. Tämä kone on iänikuisen vanha joten ostin uuden koneen. Asensin siihen 64-bittisen Linuxin. Nyt yllättäen tuli ongelmia sellaisten softien kääntämisessä, jotka käyttävät GTK-kirjastoa. Tuli virheilmoituksia nimenomaan gtk-kirjastoista: Ovat epäyhteensopivia. Aika outoa kun koneeseen on asennettu GNOME-devel paketit distron tarjoajalta. Voisikohan tällä bittimuutoksella olla jotain tekemistä tämän asian kanssa?
Työkaveri sanoi, että kannattaisi vaihtaa 32-bittinen tilalle jo senkin takia, että 64-bittisiin ei löydy yhtä helposti erilaisia ajureita tarvittaessa. Oletteko samaa mieltä?
GTK-ongelma
geeteekoo
10424
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 10
Vanhimmat
kysymys on gtk versio-ongelmasta? Gnome kirjasto ei ole sama asia kuin gtk. Gtk:sta on gtk ja gtk2. Devel paketit tarviit kanssa tietty... mut jos toi on x86_64 onkelma, niin voithan asentaa 32-bittiset kirjastot ja kääntää niitä vasten ne tarvitsemasi ohjelmat?
Moi. Veikkaampa että tulisi sinun portata softasi tähän uuteen versioon ;O T: Toivottavasti ei ole paljon koodia, tai sitten hyvin kirjoitettu.
"Tuli virheilmoituksia nimenomaan gtk-kirjastoista: Ovat epäyhteensopivia. Aika outoa kun koneeseen on asennettu GNOME-devel paketit distron tarjoajalta." Gnome ei ole saama kuin GTK. Lisäksi GTK-kirjastojen rajapinta on vakioitu LSB-standardiin vasta vuonna 2005, että voi olla myös versioeroja jos sinulla on joku vanha käyttis. Siinä tapauksessa tarvitset koodin muokkaamista nykyaikaan.
Kun hain GNOME kehityspaketit uuteen koneeseen, niin riippuvuussyitä taisi tulla myös GTK-paketit. Pitää paneutua asiaan tarkemmin huomenna. Se miten hoidin homman wanhassa koneessa, niin en muista enää. Sen kuitenkin muistan, että siinäkin oli kamalasti ongelmia ensin mutta lopulta ne ratkesivat. Mikään mukana oleva ei ole edes wuoden wanhaa, ei wanhassakaan koneessa. Wanha kone on Wanha Windows johon waihdoin Linuxin ja jota on päivitetty säännöllisesti. Uusi kone on ihkauusi.
"Mikään mukana oleva ei ole edes wuoden wanhaa, ei wanhassakaan koneessa. Wanha kone on Wanha Windows johon waihdoin Linuxin ja jota on päivitetty säännöllisesti. Uusi kone on ihkauusi." Minkä käyttöjärjestelmän vaihdoit siihen? Oliko asentamasi käyttöjärjestelmä vuoden 2005 jälkeen julkaistu? Jossain Gnome-develissä voi kyllä hyvinkin olla käyttöjärjestelmäkohtaisia juttuja, en tuosta tiedä. GTK kirjastot kyllä sitten on vakioitu vuonna 2005 ja ne ei elä vuoden 2005 heinäkuun jälkeen julkaistuissa Linux-pohjaisissa käyttiksissä. Aikaisemmin GTK-kirjastot eli jonkin verran ja GTK koodia piti muokata käyttöjärjestelmäkohtaisesti jos oli versioeroja.
eikö linux ole linux riippumatta jakelupaketista? eikö kernel ole sama kaikissa?
Tällaista tulee käännöksessä: /usr/bin/ld: skipping incompatible /usr/lib/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0 /usr/bin/ld: skipping incompatible /usr/lib/libgdk-x11-2.0.so when searching for -lgdk-x11-2.0 /usr/bin/ld: skipping incompatible /usr/lib/libatk-1.0.so when searching for -latk-1.0 /usr/bin/ld: skipping incompatible /usr/lib/libgdk_pixbuf-2.0.so when searching for -lgdk_pixbuf-2.0 /usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm /usr/bin/ld: skipping incompatible /usr/lib/libpangocairo-1.0.so when searching for -lpangocairo-1.0 /usr/bin/ld: skipping incompatible /usr/lib/libpango-1.0.so when searching for -lpango-1.0 /usr/bin/ld: skipping incompatible /usr/lib/libcairo.so when searching for -lcairo /usr/bin/ld: skipping incompatible /usr/lib/libcairo.so when searching for -lcairo /usr/bin/ld: cannot find -lcairo Näyttää siltä että koneessa on 32 bittiset kirjastot vaikka kernel on 64 bittinen: [pena@turbo tester]$ file /usr/lib/libgtk-x11-2.0.so /usr/lib/libgtk-x11-2.0.so: symbolic link to `libgtk-x11-2.0.so.0.1000.4' [pena@turbo tester]$ file /usr/lib/libgtk-x11-2.0.so.0.1000.4 /usr/lib/libgtk-x11-2.0.so.0.1000.4: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped Helpoin ratkaisu lienee uudelleen asennus 32 bittisenä, jolloin uusi kone on samanalinen kuin vanha.
"Helpoin ratkaisu lienee uudelleen asennus 32 bittisenä, jolloin uusi kone on samanlainen kuin vanha." Sillähän se vika korjaantui.
Tässä yksi ajurikokemus. Brother DCP-110C, vehje, jossa on printteri, kopiokone ja skanneri. Se toimi täysin 32 bittisessä. Kun vaihdoin 64:n, skannausta en saanut toimimaan. Printterinä kyllä menee.
"eikö linux ole linux riippumatta jakelupaketista? eikö kernel ole sama kaikissa?" Linux on ydin ja eri käyttiksissä käytetään eri versioita ytimestä, se on käännetty eri konffauksilla ja on käyttiksen toimittajan omia patcheja siinä. Tässä nyt oli kyse Linuxin sijasta GTK:sta ja Gnomesta ja versioerot on siellä myös. LSB-standardissa sitten on vakioitu kirjastojen rajapintoja ja GTK vakioitiin heinäkuussa 2005. Tätä uudemmissa käyttiksissä se rajapinta sitten on jokseenkin muuttumaton. Ilmoittavat sitten standardissa jos joku juttu vanhenee ja sitä tuetaan sitten seuraavat 6v standardissa. Käyttöjärjestelmien tuki sitten lisäksi kun eri käyttöjärjestelmillä on omat tuet. Kannattaa nyt ihan oikeasti ymmärtää, että Linux on ydin. Ei ole mitään "Linuxin jakelupaketteja" vaan kyse on käyttöjärjestelmistä. Suse on ihan oma juttunsa kuin vaikka Ubuntu ja kaikki rajapinnat joita ei ole standardoitu, voivat olla ja helposti ovatkin yhteensopimattomia versioerojen takia, jos edes löytyy samoja kirjastojakaan. Toisaalta Susen ja Ubuntun rinnakkaisversiot kyllä sitten ovat näiden käyttöjärjestelmien yhteensopivia versioita, että Kubuntu 9.04 ja Ubuntu 9.04 on sama käyttis ja yhteensopivia. Tietysti uudemmalla versiolla voi tulla taas versioeroja..