오류: 'TCP_NODELAY'가 이 범위에서 선언되지 않았습니다.

오류: 'TCP_NODELAY'가 이 범위에서 선언되지 않았습니다.

Ubuntu 16.04에서 ChatScipt v7.55를 컴파일하려고 합니다. 하지만 make server명령을 사용하면 다음 오류가 발생합니다.

evserver.cpp: In function ‘int settcpnodelay(int)’:
evserver.cpp:263:40: error: ‘TCP_NODELAY’ was not declared in this scope
     return setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (void*) &on, sizeof(on));
                                        ^
Makefile:110: recipe for target 'evserver.o' failed
make: *** [evserver.o] Error 1

명령의 전체 결과는 다음과 같습니다.

************ LINUX VERSION ************
g++ -c  -std=c++11 -Wall  -funsigned-char  -Wno-write-strings -Wno-char-subscripts -Wno-strict-aliasing  -DLOCKUSERFILE=1  -DEVSERVER=1 -DEVSERVER_FORK=1  -DDISCARDPOSTGRES=1 -DDISCARDMONGO=1 -DDISCARDMYSQL=1  -Ievserver evserver.cpp -o evserver.o
evserver.cpp: In function ‘int settcpnodelay(int)’:
evserver.cpp:263:40: error: ‘TCP_NODELAY’ was not declared in this scope
     return setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (void*) &on, sizeof(on));
                                        ^
Makefile:110: recipe for target 'evserver.o' failed
make: *** [evserver.o] Error 1

문제는 무엇이고 어떻게 해결하나요?

답변1

위의 "evserver.cpp" 파일을 추가하여 #include <netinet/tcp.h> 이 문제를 해결했습니다.

관련 정보