对__imp_socket'

时间:2018-04-08 18:15:14

标签: c++11 winsock2

我在win10上做了一个套接字项目,我发现了这些错误。

g++ -ggdb -std=c++11 -Wall -pedantic -o calcserver CalcServer.c 
DieWithError.c HandleTCPClient.c CalcFramer.cpp CalcParser.cpp
C:\Users\HARRYS~1\AppData\Local\Temp\cceLC8Xb.o: In function `main':
D:\src/CalcServer.c:35: undefined reference to `__imp_socket'
D:\src/CalcServer.c:41: undefined reference to `__imp_htonl'
D:\src/CalcServer.c:42: undefined reference to `__imp_htons'
D:\src/CalcServer.c:45: undefined reference to `__imp_bind'
D:\src/CalcServer.c:49: undefined reference to `__imp_listen'
D:\src/CalcServer.c:58: undefined reference to `__imp_accept'
D:\src/CalcServer.c:64: undefined reference to `__imp_inet_ntoa'
collect2.exe: error: ld returned 1 exit status
make: *** [calcserver] Error 1

我尝试链接 Ws2_32.lib 。我在 src 目录下下载 Ws2_32.lib ,并修改我的makefile:

CC=g++
CFLAGS=-ggdb -std=c++11 -Wall -pedantic

LINKFLAGS = -L"D:\src" -lWS2_32

H_FILES=CalcFramer.hpp CalcParser.hpp
FILES=CalcServer.c DieWithError.c HandleTCPClient.c CalcFramer.cpp CalcParser.cpp

all: calcserver

calcserver: $(FILES) $(H_FILES)
$(CC) $(CFLAGS) -o calcserver $(FILES)

clean:
rm -rf calcserver

但是,我仍然会遇到上述错误。我已经将所有 sys / socket.h 标头更改为 Winsock.h Winsock2.h 。所以我认为不是那个导致我犯错误的部分。

0 个答案:

没有答案