|
| Problemer med LIB-fil til InterBASE 6.0 Fra : Per Asbjoern Jensen |
Dato : 07-03-01 09:48 |
|
Hej,
Jeg er ved at føre en IB-program fra VC over i linux(gcc). Jeg brugte før en
LIB-fil ved navn gds32_ms.lib, men er der nogen der ved hvilken lib-fil jeg
skal bruge i linux?
Hvad er forskellen på en .so og en .a lib-fil i linux?
Håber I kan hjælpe mig
På forhånd tak
Per Asbjørn Jensen
| |
Mogens Hansen (07-03-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 07-03-01 10:16 |
|
Hej Per,
"Per Asbjoern Jensen" <per.a.jensen@mail.dk> wrote in message
news:3Bmp6.13282$XX2.292853@twister.sunsite.dk...
> Hej,
>
> Jeg er ved at føre en IB-program fra VC over i linux(gcc). Jeg brugte før
en
> LIB-fil ved navn gds32_ms.lib, men er der nogen der ved hvilken lib-fil
jeg
> skal bruge i linux?
>
Så vidt jeg kan se af dokumentationen (API Guide, side 200) hedder
client-librariet "libgds.a" til Unix/Linux, og ifølge dokumentation (API
Guide, side 36) hedder interbase library filen Solaris "gdsmt" og til HPUX
"gds", og ligger i "lib" biblioteket - det er nok nogenlunde det samme for
Linux.
Jeg har ikke selv prøvet det - jeg bruger Interbase under Windows. Jeg
forventer at skulle flytte programmet til Linux på et tidspunkt, så jeg
render ind i samme spørgsmål. Derfor vil jeg da gerne lige høre hvordan det
går - om ikke andet så med en mail.
Venlig hilsen
Mogens Hansen
| |
Byrial Jensen (11-03-2001)
| Kommentar Fra : Byrial Jensen |
Dato : 11-03-01 05:50 |
|
Per Asbjoern Jensen <per.a.jensen@mail.dk> skrev:
>Hvad er forskellen på en .so og en .a lib-fil i linux?
En .a-fil (a for archive) bruges til statisk linkning, dvs. at
en kopi af den brugte kode fra biblioteket inkluderes i den
eksekverbare fil.
En .so-fil (so for shared object) bruges til dynamisk linkning,
dvs. at den eksekverbare fil kun indeholder en henvisning til
..so-filen. Den indlæses så når programmet udføres. Hvis flere
programmer bruger samme .so-fil, vil der kun være en kopi af den
i hukommelsen.
Dynamisk linkede programmer fylder meget mindre end statisk
linkede programmer:
$ cat hello.c
#include <stdio.h>
#include <stdlib.h>
int main ()
{
printf ("Hello world!\n");
return EXIT_SUCCESS;
}
$ gcc hello.c -o hello.dyn
$ gcc hello.c -static -o hello.stat
$ ls -l hello.*
-rw-rw-r-- 1 byrial byrial 107 mar 11 05:08 hello.c
-rwxrwxr-x 1 byrial byrial 13405 mar 11 05:10 hello.dyn
-rwxrwxr-x 1 byrial byrial 1391892 mar 11 05:10 hello.stat
$
| |
|
|