在尝试编写通过套接字发送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-Bit。图书馆来自MinGW本身。
我的包括:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>
到目前为止,我试过了:
答案 0 :(得分:1)
我想出了一个&#34;解决方法&#34;:如果我在终端/控制台中打开&#34;发布&#34; -folder(由eclipse创建)并使用
重新编译文件gcc -o filename.exe main.o -lwsock32
它有效(eclipse在gcc之后使用&#34; -shared&#34;选项,这需要删除)