【发布时间】:2015-02-05 12:16:46
【问题描述】:
在尝试编写通过套接字发送 UDP 的 C 程序时,我遇到了以下问题:
添加线后创建套接字
SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);
Eclipse 报告了这个问题:
undefined reference to `socket@12'
显然缺少库,所以我添加了 ws2_32 和 wsock32。
现在它编译和构建得很好(根据 MinGW),但是: 输出文件(以前可以工作)现在有一个“lib”前缀并且不再可执行(双击后会弹出一条消息,上面写着“%PATH%\libprojectname.exe 不是有效的 win32 应用程序”)
我正在使用 Eclipse luna 4.4.1、MinGW 4.8.1、Win7 64 位。库来自 MinGW 本身。
我的包括:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>
到目前为止我尝试过:
- 清理并重建项目
- 恢复默认(Project->Properties->C/C++-Build->Settings)
- 创建一个新项目(在我添加库之前编译正常)
【问题讨论】:
-
欢迎来到 Stack Overflow!与其编辑您的问题以包含您的解决方案,不如写下此问题的答案,然后将其标记为已接受。