Avatar billede kube Nybegynder
01. april 2003 - 22:09 Der er 13 kommentarer og
2 løsninger

linkning af .lib filer

Hej,
jeg skal linke til mpr.lib oh wsock32.lib. Mit problem er jeg bruger dev-c++ 4 og kan ikke finde ud af hvordan det gøres? Derudover har jeg aldrig brugt lib filer før, men er det ikke stort set det samme som .h filer?

håber I kan hjælpe mig
mvh kube
Avatar billede kube Nybegynder
01. april 2003 - 22:11 #1
jeg tror at filerne i dev-c++ hedder libwsock32.a - ellere er det helt forkert
Avatar billede soreno Praktikant
01. april 2003 - 22:12 #2
Det kan du ikke. MSVC++ lib filer er ikke kompatible med gcc lib filer.
Der findes muligvis nogle converter programmer men jeg synes ikke at have haft held med nogle.

Du kan bruge dem som følger med:
wsock32.lib == libws2_32.a
mpr.lib == libmpr.a
Avatar billede soreno Praktikant
01. april 2003 - 22:13 #3
Hvis ikke du har .a filerne kan du opdatere win32 apiet herfra:
http://prdownloads.sourceforge.net/mingw/w32api-2.3.tar.gz?download

Så vidt jeg husker så skal du tilføje filerne i "project settings"
Avatar billede arne_v Ekspert
01. april 2003 - 22:16 #4
En .LIB fil (eler .A fil som de hedder i dev-cpp grundet dets
aner fra unix verdenen) matcher .H filer men indeholder absolut ikke
det samme som .H filer.

Hvis du har:
  x.h
med nogle funktioner som du implementerer i:
  x1.c
  x2.c
  x3.c
så compiler du de 3 .C filer til:
  x1.obj
  x2.obj
  x3.obj
og dem kan du putte ind i en enkelt .A fil f.eks. x.a.

Når brugeren af din kode compiler skal han have:

#include "x.h"

og når han linker skal han have linke mod x.a.
Avatar billede kube Nybegynder
01. april 2003 - 22:17 #5
jeg har filen i mit /lib/, men jeg ved ikke hvordan de skal linkes? Derudover er lib-filer et nyt begreb for mig
Avatar billede arne_v Ekspert
01. april 2003 - 22:18 #6
Tilsvarende skal du inkludere winsock.h og linke mod
libwsock32.a !

Og Søren er godt på vej til at vise dig hvor du finder
de .A filer du skal bruge.
Avatar billede arne_v Ekspert
01. april 2003 - 22:19 #7
Du højre-klikker på projektet og vælger project options, så er der
en text box til optional libs - bare skriv den der.
Avatar billede kube Nybegynder
01. april 2003 - 22:20 #8
arne_v-> ok det er det lib filerne er. tak, så mangler jeg bare hvordan det links
Avatar billede soreno Praktikant
01. april 2003 - 22:20 #9
Arne:
Hvad er foreskellen på libwsock32.a og libws2_32.a

Et simpelt lille eksempel jeg lige testede kompilerede (og linkede) mod begge libs..
Avatar billede kube Nybegynder
01. april 2003 - 22:23 #10
er det det hvor der står - Futher object files or linker options?? jeg prøver lige..
Avatar billede arne_v Ekspert
01. april 2003 - 22:23 #11
Hef formoder at libwsock32.a er "gammel" winsock og libws2_32
er winsock2.
Avatar billede soreno Praktikant
01. april 2003 - 22:26 #12
Nå ja, selvfølgelig :-)
Avatar billede kube Nybegynder
01. april 2003 - 22:32 #13
jeg har linket til filerne, men compileren siger:
c:\programmer\dev-c++\lib\netappmain.cpp: In function `int main(int, char **)':
c:\programmer\dev-c++\lib\netappmain.cpp:5: `WSADATA' undeclared (first use this function)
c:\programmer\dev-c++\lib\netappmain.cpp:5: (Each undeclared identifier is reported only once
c:\programmer\dev-c++\lib\netappmain.cpp:5: for each function it appears in.)
c:\programmer\dev-c++\lib\netappmain.cpp:5: parse error before `;'
c:\programmer\dev-c++\lib\netappmain.cpp:6: implicit declaration of function `int MAKEWORD(...)'
c:\programmer\dev-c++\lib\netappmain.cpp:6: `WsaDat' undeclared (first use this function)
c:\programmer\dev-c++\lib\netappmain.cpp:6: implicit declaration of function `int WSAStartup(...)'

TIL :
WSADATA WsaDat;
if(WSAStartup(MAKEWORD(1,1), &WsaDat)!=0)
{
printf("WSA initialization failed.");
}


SÅ JEG VED IKKE OM DER ER LINKET RIGTIGT. HAR DET NOGET AT SIGE
Avatar billede soreno Praktikant
01. april 2003 - 22:34 #14
Du mangler højst sandsynligt at:
#include <winsock2.h>
Avatar billede kube Nybegynder
01. april 2003 - 22:37 #15
tak for hjælpen. begge to
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester