2011-04-19 23 views
5

Windows'ta Soket programlama öğrenmeye çalışıyorum ve aynı anda cygwin kullanıyorum. Aynı dosyalar için gerekli olan dosyaların /usr/include/w32api/ adresinde olduğunu öğrendim. cygwin + Windows soket programlama

Ben net bir örnek program alıp derlemek çalıştı ama bunu başaramadı .... aynı kod

#include <w32api/windows.h> 
#include <w32api/winsock.h> 
#include <stdio.h> 
    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShow) 
    { 

     WORD sockVersion; 
      WSADATA wsaData; 
      int nret; 

     sockVersion = MAKEWORD(1, 1);   // We'd like Winsock version 1.1 

     // We begin by initializing Winsock 

     WSAStartup(sockVersion, &wsaData); 

     // rest part of code 
    } 

Ben cygwin ortamda gcc-3 kullanılarak ve elde derlemek olduğunu çok garip hatalar .....

undefined reference to '_WSAStartup08' and many such errors... 

bir öğretici kodunu siteden almış ve böylece ben yanlış DNG ve nasıl ben programı çalıştırmalısınız neysem bilmek istiyorum. ...

Çok teşekkürler ..

düzenlemek ---------

Ben de winsock.h yerine Winsock2 kullanmaya çalıştık ancak hatalar devam

+0

Bir kenara baktığımda bunun WS2_32.Lib ile bağlantı kurmamanın neden olabileceğini düşünüyorum ancak cygwin'de nerede bulacağımı bilmiyorum .... gcc denedim socket.c -l libws2_32.a ama başarı yok ..... –

+0

Windows soketlerini öğrenmeye çalışıyorsanız, cygwin'i seçmenin nedeni nedir? Windows soketleri VS20xx Express DE'lerden herhangi biriyle çok sağlamdır. Neden bu ortamlardan biri değil? –

cevap

6

-lws2_32 yapmalı. Bununla birlikte, Cygwin'in winsock üzerine kendi POSIX uyumlu soket uygulaması vardır ve genellikle karıştırmak iyi bir fikir değildir. Eğer winsock ile uğraşmak isterseniz, muhtemelen Cygwin DLL'sini denklemden alan gcc-3'ün -mno-cygwin seçeneğini kullanmak isteyebilirsiniz. (Ayrıca#include satırlarından da düşürmeniz gerekir.)

+0

mükemmel ... teşekkürler çok ... dilek daha fazla oy verebilir :) –

İlgili konular