Vlákno názorů k článku Programování pod Linuxem pro všechny (5) od Jirka Vandas - Ahoj vsem, hezky serial, ale mam jednu drobnou otazku....

  • Článek je starý, nové názory již nelze přidávat.
  • 20. 2. 2004 21:38

    Jirka Vandas (neregistrovaný)

    Ahoj vsem,
    hezky serial, ale mam jednu drobnou otazku. V minulem dile bylo uvedeno, ze pri linkovani programu "prilinkuju" k programu dynamickou knihovnu pomoci -lknihovna. Z dnesniho dilu jsem pochopil, ze i pri pouziti dlopen je toto nutne; knihovna se natahuje pri dlopen. Kdy se nahrava knihovna v tom prvnim pripade? A jak system vi (a od koho), ze "prilinkovana" knihovna pres -lknihovna nebude nahravana pres dlopen.
    Diky.

  • 21. 2. 2004 3:05

    Petr Baudis (neregistrovaný)

    Nikoliv, pokud otevirate knihovnu pres dlopen(), vas executable proti ni nelinkujete. Ovsem nemuzete samozrejme na druhou stranu primo pouzivat jeji symboly, ale "vytahovat" si je pres dlsym().

    Zjednodusene to funguje zhruba tak, ze pri spusteni programu se ve skutecnosti spusti '/lib/ld.so prikazova radka'. /lib/ld.so je tzv. dynamicky linker, tedy prave program, ktery natahne vsechny potrebne dynamicke knihovny, proti kterym byl program slinkovan (pomoci -lknihovna).

    V praxi se spousti spise /lib/ld-linux.so.2, a muzete si ho ostatne spustit i primo, vypise se vam takovy hezky help atd. ;-)