1 van 1

Linux: libraries in verborgen map

Geplaatst: di 29 nov 2016, 23:31
door xansid
Ik heb een numeriek programma gecompileerd met een fortran compiler op Linux. Het uitvoerbare bestand is klein, ik kopieer het doorgaans naar de afzonderlijke mappen waarin de invoerbestanden zich bevinden. Zodra ik het programma start verschijnt er een verborgen map genaamd './lib', hierin staan kennelijk hulpbestanden.
 
Zojuist heb ik de map met de broncode van het gecompileerde programma gekopieerd, zodat ik zelf aan de code kan gaan sleutelen. Ik kreeg bij het kopieren een vraag over 'symlinks', en weet niet meer precies welke optie ik toen gekozen heb. Maar het had tot gevolg dat de hulpbestanden in elke './lib' niet meer gevonden werden, ook al stonden ze er wel als ik zelf keek.
 
Toen ik opnieuw gecompileerd had en het programma opnieuw kopieerde naar de invoerbestanden was het weer okee.
 
Het is misschien een beetje een vaag verhaal maar heeft iemand een idee wat hier gaande is? Wat is de logica achter de ./lib mappen? Waarom kan ik de gecompileerde broncode niet kopieren/plakken?

Re: Linux: libraries in verborgen map

Geplaatst: wo 30 nov 2016, 02:03
door Benm
Ik vermoed dat de optie is om automatisch een symlink te maken van ./lib relatief aan het pad waar je je programma neer zet, en die symlink zal dan verwijzen naar een vaste locatie waar de libraries daadwerkelijk staan. 
 
Als je vervolgens wel het programma kopieert maar niet de symlink kan het programma de libraries niet meer vinden en werkt het niet meer. 

Re: Linux: libraries in verborgen map

Geplaatst: wo 30 nov 2016, 08:24
door EvilBro

Re: Linux: libraries in verborgen map

Geplaatst: wo 30 nov 2016, 11:26
door xansid
Bedankt, zo kom ik weer een stapje verder!
Dus bij 'static linking' zitten de libraries in het uitvoerbare bestand zelf, en zodra ik het uitvoer worden ze uitgepakt naar een verborgen map?
 
En dan nog snap ik niet wat er aan de hand is want het programma zelf kopieren gaat prima. Het was pas toen ik een kopie van de gecompileerde code maakte dat het fout ging.

Re: Linux: libraries in verborgen map

Geplaatst: wo 30 nov 2016, 11:31
door EvilBro
Is 'static linking' dan zo ingericht dat de libraries in een verborgen map aan het uitvoerbare bestand worden gekoppeld?
Nee. Als je de "static link"-optie gebruikt zou alles in 1 file moeten komen. Is dit niet zo als je dit probeert?
 
En dan nog snap ik niet wat er aan de hand is want het programma zelf kopieren gaat prima. Het was pas toen ik een kopie van de gecompileerde code maakte dat het fout ging.
Ik snap niet wat je hier zegt en het is me dus niet helemaal duidelijk wat je precies gedaan hebt.