エラー: '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> この問題を解決しました。

関連情報