- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 Code::Blocks、MinGW 和 Windows。我正在尝试初始化 winsock,以便我可以处理一个项目。我不断收到错误 Undefined Reference to WSAStartup@8
有人知道如何解决这个问题吗?
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
int main(int argc , char *argv[]){
WSADATA wsa;
int output;
output=WSAStartup(MAKEWORD(2,2),&wsa);
if(output != 0) {
printf("Startup failed %d\n", output);
return 1;
} else {
printf("Initialized");
return 0;
}
}
最佳答案
链接器在加载代码后查找依赖项。如果库在需要符号之前出现在构建过程中,因为源文件在之后出现,那么没有使用符号,后来当它们出现在源文件中时,它们将无法解析。将链接的 winsock 库 -lws2_32
放在源文件和目标文件之后。
gcc prog.c -o prog -lws2_32
关于C - 对 WSAStartup@8 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384803/
我正在尝试开发通过网络连接到网络服务器的软件;一切正常,直到尝试使用加密狗来保护我的软件。我的加密狗有一些网络功能,它的 API 在网络基础设施下工作。 w当我将 Dongle 检查代码添加到我的程序
我刚刚安装了 Windows 10、Visual Studio Community 2015 和 Git for Windows .我还安装了最新的 Bitbucket 和 GitHub 扩展。 在
我已经开始编写一个使用套接字的 ActiveX 控件。 使用此控件的应用程序可能也可能不使用套接字。我的控件是否可以判断 WSAStartup 是否已被调用? 如果没有,调用它。一个小测试表明多次调用
我正在为 TCP/IP 网络客户端通信编写一个类。在类 header 中,我创建了一个 SOCKET 成员。该类还包含调用 WSAStartup 和检查版本的方法。建立连接的方法首先调用 WSASta
我正在开发一个应用程序,它有一个 TCP 服务器和多个 UDP 服务器/监听器。每个服务器都是一个单独的线程,与建立 TCP 连接的工作线程相同。我在每个线程中调用 WSAStartup()。 有时,
我有运行 TCP 服务器的应用程序。为了初始化 TCP,我运行 WSAStartup()。然后我需要加载第三方dll。 Dll 也做一些 TCP 工作并有一些错误 - 它运行 WSACleanup()
我有一个 c++ win32 程序,它使用套接字从服务器下载一些数据。 在 Windows 上使用套接字之前,必须调用 WSAStartup。 MSDN 说:“每次成功调用 WSAStartup 都必
WSAStartup 函数如何启动 Winsock DLL 的使用? 根据文档 The WSAStartup function must be the first Windows Sockets fu
下面是我执行的 D:\Just4Fun\software\>make -f Makefile.hands stest g++.exe -g -D_WIN32_WINNT=0x0601 -ID:\Boo
我正在使用 Code::Blocks、MinGW 和 Windows。我正在尝试初始化 winsock,以便我可以处理一个项目。我不断收到错误 Undefined Reference to WSASt
对于 64 位应用程序,.NET Framework 版本和 native Win32 版本的 WSAData 结构不匹配,因为字段的顺序不同。我复制了用于我们基于 C# 的产品的 .NET 版本,一
我正在使用带有 WebAdministration 模块的 PSRemoting 来获取有关各个站点的信息,并且它正在工作。但是,我在调用命令期间收到了一个烦人的非致命 COM 异常,并想知道是否有其
我有我通过 CLI 包装器从 C# 使用的 native dll 项目。在我正在调用的 dll 的 Initialize 方法中 WSAStartup(MAKEWORD(2, 2), &data);
我是一名优秀的程序员,十分优秀!