Tarvitseeko linuxin ydin kääntää kun asentaa so päätteisen tiedoston koneeseen.
Linux *.so tiedosto?
6
503
Vastaukset
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
- 865352
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 h784714Jos 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 ar1113017Tanskan malli perustuu korkeaan ansioturvaan
Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv872948Epä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 p232514Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.612039Anteeksipyyntöni
Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska251966- 321523
Sydämeni valtiaalle
En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden1141439- 1851328