Programovani - shared libraries na Linuxu

Stanislav Meduna stanom na etm.at
Úterý Září 4 08:40:17 CEST 2001


Lubos Lunak schrieb in Nachricht <9n0rv7$30ut$1 na ns.felk.cvut.cz>...

> Zatimco na Unixech pouzivany ELF system nas dostava
>do novych casu, kdy  primitivni programek slinkovany s hodne
>knihovnami zere kvanta pameti jen pro ty knihovny,

A to ako preco? Ak kod nikto nepotrebuje, v realnej pamati nebude
(az na tie stranky s odkazmi). Navyse ak su to kniznice, ktore
uz tak ci tak niekto pouziva, spotreba pamati sa nezvysi vobec.

Kolko chcu virtualnej pamati je mi vcelku jedno.

>nemluve o startovacim casu.

Ano, toto je na Linuxe trochu problem - akurat neviem ci je to
odstranitelny performance problem v dynamickom linkeri, alebo
dan za modularitu (spusta navzajom previazanych malych kniznic,
z ktorych ma potom linker hlavu v smutku).

To: povodny pisatel: nasiel som na sieti nasledovne:

=== snip ===
Actually what you want is a version script -- and they're remarkably
simple.

For example, if you wanted to make the functions `public1' and
`public2' public, with everything else private, you'd have:

your_library_version {
        global:
            public1; public2;
        local:
            *;
};

put the above in a file called, say `Versions' and add
`--version-script=Versions' to your link line.

You don't even have to name each of the functions literally --
as you can see above, you can use wildcards. Therefore if your
public functions have some prefix attached to them (often a good
idea anyway) ou can just use `prefix_*', for example.
=== snip ===

Bez zaruky, nikdy som neskusal.

Skuste dat do groups.google.com "dynamic library version-script".

Zdravi
--
                                                          Stano





Další informace o konferenci Linux