Torben W. Hansen wrote:
> "Jakob Bøhm" <jb@danware.dk> skrev i en meddelelse news:4678f4cb$0$13934
>
>> På alle *N*X C compilere betyder -lxxx "Link med biblioteket libxxx.a
>> eller DLL-et libxxx.so" Så på Windows betyder disse switche link med
>> xxx.lib eller xxx.dll .
>
> Nå sådan - tak !
>
> Jeg glemte at fortælle at det at det mingw (gcc og g++) compileren windows.
> Den benytter samme notation, libxxx.a, for bibliotekerne som
> linux/unix-versionen. Dvs. at
>
> g++ bgidemo0.cpp -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 -o
> bgidemo0.exe
>
> linker bgidemo0.o med libgd.a, libgdi32.a, libcomdlg32.a, libuuid.a,
> liboleaut32.a og libole32.a til en outputfil bgidemo0.exe
>
>> Så kig i dit udviklingsmiljø efter et sted hvor man kan specificere de
>> biblioteker/libraries/shared objects/DLL-er man ønsker at bruge og indtast
>> xxx værdierne der.
>
> men hvordan bruges så *.lib filer, hvis man står med sådan en - skal disse
> også linkes ?
>
>> Option -o angiver bare navnet på outputfilen, men der vidste du sikkert
>> allerede.
>
>
> Hellere for meget info end for lidt
>
> Med venlig hilsen
> Torben W. Hansen
>
>
>
>
Windows .lib filer (fra Microsofts compilere) er i eksakt samme format
som *N*X .a filer, bortset fra filnavnet.
Windows .dll filer indeholder (modsat *N*X .so filer) ikke tilstrækkelig
information til at linke til dem, denne information ligger i stedet i en
speciel "import" .lib fil . Der findes dog værktøjer som med vekslende
held forsøger at rekonstruere "import" .lib fra .dll . "import" .lib
filer indeholder i øvrigt nogle udvidelser i forhold til det oprindelige
*N*X .a + COFF format, men jeg håber da at den nuværende mingw ld.exe
understøtter disse.
Pas i øvrigt på med at angive en .a eller .lib fil direkte til en *N*X
agtig linker. På *N*X betyder dette sommetider at man ønsker at linke
ALT fra biblioteket ind, ikke kun det man bruger. Så hvis du gør det og
din .exe fil pludselig bliver enormt stor, så prøv at se efter om det er
det der er problemet.
--
Jakob Bøhm, M.Sc.Eng. * jb@danware.dk * direct tel:+45-45-90-25-33
Danware Data A/S * Bregnerodvej 127 * DK-3460 Birkerod * DENMARK
http://www.netop.com * tel:+45-45-90-25-25 * fax tel:+45-45-90-25-26
Information in this mail is hasty, not binding and may not be right