Dynaamiset linkkikirjastot, nämä tunnetaan:
windowsissa .dll -tiedostoina
linuxissa .so -tiedostoina
Windowsissa DLL -tiedostoa käännettäessä on mahdollista määrittää "preferred load address".
Windows toki osaa relokatoida DLL.n ladattaessa muuhunkin osoitteeseen, mutta tämä on hitaampaa.
esimerkiksi Delphissä tämä tehdään seuraavalla direktiivillä lähdekoodissa:
{$IMAGEBASE $00400000}
Mutta voiko linuxissa tehdä saman .so -tiedostoja käännettäessä ?
Jos voi, esimerkki esim. gcc -kääntäjällä olisi tervetullut.
windowsissa .dll -tiedostoina
linuxissa .so -tiedostoina
Windowsissa DLL -tiedostoa käännettäessä on mahdollista määrittää "preferred load address".
Windows toki osaa relokatoida DLL.n ladattaessa muuhunkin osoitteeseen, mutta tämä on hitaampaa.
esimerkiksi Delphissä tämä tehdään seuraavalla direktiivillä lähdekoodissa:
{$IMAGEBASE $00400000}
Mutta voiko linuxissa tehdä saman .so -tiedostoja käännettäessä ?
Jos voi, esimerkki esim. gcc -kääntäjällä olisi tervetullut.
Vastaukset 2
Vanhimmat
Uteliaisuudesta kysyn, et mikäs on niin aikakriittistä hommaa, että toi pitää tehä noin?
Prelinkillä noita voi laskea valmiiksi kääntämisen ja linkkaamisen jälkeenkin.