Linux *.so tiedosto?

ööÖööö...

Tarvitseeko linuxin ydin kääntää kun asentaa so päätteisen tiedoston koneeseen.

6

503

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Kai se riippuu tiedostosta ja käyttöjärjestelmästä.. Tavallinen kirjastohan tuo on ja jos se ei ydintä käytä niin ei.

    • kuin windowsissa

      .dll

    • tilanne?

      Käyttöjärjestelmähän tuossa otsikossa tulikin mainittua vaikka M_Karilta se taisi mennä vähän ohi. ;)

      Kyseessä dynaammisesti linkitetty kirjasto eli Windowsin .dll:ää vastaava.

      Linuxissa on kuitenkin kattava riippuvuuksien hallinta joten yksittäisiä kirjastoja ei tarvitse asennella Windowsin dll-hell tapaan yritä_ja erehdy menetelmälllä vaan paketinhallinta lataa automaattisesti tarpeelliset ohjelman asennuksen yhteydessä.

    • K-Mar.

      Ei kannata asentaa mitään so-tiedostoja!

      • Koodaaja_linux

        1. linuxissa tosiaankin libjotakin.so vastaa windowsin jotakin.dll

        2. Jos linuxiin koodaa ohjelman esim. FreePascal / Lazarus -yhdistelmällä, niin jos ohjelmassa haluaa käyttää apuna C:llä tai C :lla tehtyä koodia, niin kyllä tuossa .so -tiedostoja tarvitaan: käännetään C tai C -kieliset koodit .so -tiedostoksi, ja kirjoitetaan niille import unit FreePascalilla.

        huom: C :n osalta: luokkia EI voi toimivasti exportoida .so:sta (ainakaan niin, että ne toimisivat muista kuin C :lla tehdyistä ohjelmista), joten C -koodin osalta menettely on seuraava:

        1. "exportoitavat" luokat muunnetaan flat -proseduureiksi tähän tapaan:

        jos on vaikkapa:

        int TLuokka::Jotakin(int a)

        niin sen kutsumista varten määritellään tällainen proseduuri: (EI luokkametodi):

        int TLuokka_Jotakin(TLuokka Luokkaviite, int a) {
        return Luokkaviite->Jotakin(a);
        }

        ja vastaavasti luokan konstruktoria varten tällainen:

        TLuokka Luo_Luokka() {
        return new TLuokka(); // tarkista syntaksi !!!
        // Tässä siis on tarkoitus luoda uusi luokan TLuokka ilmentymä, ja palauttaa viite siihen.
        }

        ja vastaavasti destruktori:

        void Tuhoa_Luokka(TLuokka LV) {
        LV->Destroy();
        }

        ja lopuksi:

        nuo exportataan näin:

        extern "C" {

        int TLuokka_Jotakin(TLuokka Luokkaviite, int a);
        TLuokka Luo_Luokka();
        void Tuhoa_Luokka(TLuokka LV);

        }


        Syntaksissa voi olla virheitä, joku C :aa paremmin osaava voi korjata ne.

        Mutta periaatetasolla juuri näin voi exportoida flat -proseduureiksi muunnettuja C -luokkia, joita voi sitten importoida FreePascaliin, ja niille voi halutessaan kirjoittaa FreePascaliin -luokkawrapperin; tällainen kikkailu on tarpeen, koska C :n ja FreePascalin luokat eivät ole teknisesti sama asia, vaikka toteuttavatkin samoja pääperiaatteita.

        .so linuxissa, samoin kuin .dll windowsissa, on hyödyllinen kehittäjän työkalu, varsinkin silloin, jos haluaa kirjoittaa oman ohjelmansa FreePascalilla, mutta joutuu käyttämään muiden tekemää C:llä tai C :lla käännettyä koodia, ja tämä tilannehan tulee linuxissa aika usein vastaan.


    • Koodaaja_linux

      Yleisesti: kerneliä ei tarvitse uudelleenkääntää.

      Sensijaan linuxissa yleensä tarvitsee päivittää tiedostoa:

      /etc/ld.so.conf

      ja tuon jälkeen pitää vielä ajaa linuxin mukana tuleva työkaluohjelma komentoriviltä:

      ldconfig

      (parametreja ei yleensä tarvita, mutta ldconfig täytyy ajaa root -oikeuksin; ubuntuilijat siis sudo ldconfig).

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kuka paiskasi vauvan betoniin Oulussa?

      Nimi esiin.....
      Oulu
      86
      5352
    2. Riikan kukkaronnyöri on umpisolmussa

      Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h
      Maailman menoa
      78
      4714
    3. Jos vedetään mutkat suoraksi?

      Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar
      Sinkut
      111
      3017
    4. Tanskan malli perustuu korkeaan ansioturvaan

      Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv
      Maailman menoa
      87
      2948
    5. Epäily: Räppäri yritti tappaa vauvansa.

      https://www.mtvuutiset.fi/artikkeli/epaily-mies-yritti-tappaa-vauvansa/9300728 Tämä on erittäin järkyttävä teko täysin p
      Maailman menoa
      23
      2514
    6. Vain vasemmistolaiset ovat aitoja suomalaisia

      Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.
      Maailman menoa
      61
      2039
    7. Anteeksipyyntöni

      Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska
      Järki ja tunteet
      25
      1966
    8. Miten must tuntuu

      et sä ajattelet mua just nyt
      Ikävä
      32
      1523
    9. Sydämeni valtiaalle

      En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden
      Ikävä
      114
      1439
    10. Kun et vain tajua että

      sua lähestytään feikkiprofiililla :D Hanki aivot :D m-n
      Ikävä
      185
      1328
    Aihe