May 25

用gcc/g++编译winsock程序 不指定

felix021 @ 2009-5-25 02:12 [IT » 网络] 评论(5) , 引用(0) , 阅读(10238) | Via 本站原创 | |
开始学习winsock(应付网络程序设计的大作业)
在网上搜"winsock 入门",然后都是一堆很ooxx的东西,反正你看了就是不知道怎么写程序就是了。

试着写下一些代码,却发现出现一堆类似
引用
undefined reference to `socket@12'
undefined reference to `htons@4'
这样的错误。

Google了一下,众说纷纭啊,有说extern "C"的,有说少lib路径的
最后在CSDN的论坛上发现有个人遇到这个问题,贴了个程序,后面别人给的建议有效了:
#include<iostream>
#include<windows.h>
#include<winsock.h>
using namespace std;

int main()   {
    WSADATA wsaData;
    WSAStartup(MAKEWORD(1,1),&wsaData);
    cout<<"hello"<<endl;
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    sockaddr_in host;
    int port = htons(8080);
}

编译:
C:\code\> g++ a.cpp -lwsock32
加上libwsock32的库即可。。。汗。



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
fertony
2010-6-21 23:44
谢谢,知道了
sandy
2009-5-26 22:23
但是你是在用Winsock,你不是在写你以前那些纯C/C++程序。

况且miniGW搭配MSDN也是非常常见的组合吧。不要老把MSDN想成VS的帮助文件啊
felix021 回复于 2009-5-26 22:25
嗯,Got it.
sandy
2009-5-26 21:49
1、MSDN
2、MSDN
3、MSDN
felix021 回复于 2009-5-26 22:11
我从来就没有养成看MSDN的习惯=.=
而且用的是MinGW,所以也没想到要去看MSDN...
sandy
2009-5-26 18:09
看到undefined reference XXXX或者unresolved external XXXX基本上就应该首先想到是链接时的问题,其中最常见就是lib没找到。

这个不至于让你困惑这么久吧。
felix021 回复于 2009-5-26 18:49
一,网上直接搜入门教程没有完整的说明
二,我不确定在windows下是不是也是这样
三,不知道是缺那个lib
ivan Email Homepage
2009-5-26 17:10
嗯。
又一次安装ncurces库,安装很顺利,可就是编译不了程序,最后才发现是没加-l选项!
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]