C++ 在WSL(Ubuntu18.04)中使用CMake从源代码构建gRPC会产生缺少的`winsock2.h`

C++ 在WSL(Ubuntu18.04)中使用CMake从源代码构建gRPC会产生缺少的`winsock2.h`,c++,cmake,grpc,c-ares,C++,Cmake,Grpc,C Ares,我将使用CMake安装gRPC。首先,如果不根据修改CMake命令,它实际上无法从CMake项目中使用。所以我做到了,配置部分工作正常。但是,当我运行make时,它会像这样失败 In file included from /mnt/c/Program Files/grpc/include/ares.h:22:0, from /mnt/c/Users/j*****/sources/grpc/src/core/ext/filters/client_channel/r

我将使用CMake安装gRPC。首先,如果不根据修改CMake命令,它实际上无法从CMake项目中使用。所以我做到了,配置部分工作正常。但是,当我运行
make
时,它会像这样失败

In file included from /mnt/c/Program Files/grpc/include/ares.h:22:0,
                 from /mnt/c/Users/j*****/sources/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc:23:
/mnt/c/Program Files/grpc/include/ares_build.h:26:12: fatal error: winsock2.h: No such file or directory
 #  include <winsock2.h>
            ^~~~~~~~~~~~
compilation terminated.
CMakeFiles/grpc.dir/build.make:4768: recipe for target 'CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc.o' failed
make[2]: *** [CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc.o] Error 1
[ 85%] Building CXX object CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc.o
make[2]: *** Waiting for unfinished jobs....
In file included from /mnt/c/Program Files/grpc/include/ares.h:22:0,
                 from /mnt/c/Users/j*****/sources/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc:23:
/mnt/c/Program Files/grpc/include/ares_build.h:26:12: fatal error: winsock2.h: No such file or directory
 #  include <winsock2.h>
            ^~~~~~~~~~~~
compilation terminated.
CMakeFiles/grpc.dir/build.make:4794: recipe for target 'CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc.o' failed
make[2]: *** [CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc.o] Error 1
In file included from /mnt/c/Program Files/grpc/include/ares.h:22:0,
                 from /mnt/c/Users/j*****/sources/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc:29:
/mnt/c/Program Files/grpc/include/ares_build.h:26:12: fatal error: winsock2.h: No such file or directory
 #  include <winsock2.h>
            ^~~~~~~~~~~~
compilation terminated.
CMakeFiles/grpc.dir/build.make:4820: recipe for target 'CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc.o' failed
make[2]: *** [CMakeFiles/grpc.dir/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc.o] Error 1
CMakeFiles/Makefile2:702: recipe for target 'CMakeFiles/grpc.dir/all' failed
make[1]: *** [CMakeFiles/grpc.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
在/mnt/c/Program Files/grpc/include/ares.h:22:0中包含的文件中,
来自/mnt/c/Users/j******/sources/grpc/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u ev\u driver.cc:23:
/mnt/c/Program Files/grpc/include/ares_build.h:26:12:致命错误:winsock2.h:没有这样的文件或目录
#包括
^~~~~~~~~~~~
编译终止。
CMakeFiles/grpc.dir/build.make:4768:目标“CMakeFiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u ev\u driver.cc.o”的配方失败
make[2]:***[CMakeFiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u ev\u driver.cc.o]错误1
[85%]构建CXX对象cmakfiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u wrapper\u fallback.cc.o
make[2]:***等待未完成的工作。。。。
在/mnt/c/Program Files/grpc/include/ares.h:22:0中包含的文件中,
来自/mnt/c/Users/j*****/sources/grpc/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc:23:
/mnt/c/Program Files/grpc/include/ares_build.h:26:12:致命错误:winsock2.h:没有这样的文件或目录
#包括
^~~~~~~~~~~~
编译终止。
CMakeFiles/grpc.dir/build.make:4794:目标“CMakeFiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u ev\u driver\u posix.cc.o”的配方失败
make[2]:***[CMakeFiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u ev\u driver\u posix.cc.o]错误1
在/mnt/c/Program Files/grpc/include/ares.h:22:0中包含的文件中,
来自/mnt/c/Users/j*****/sources/grpc/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u wrapper.cc:29:
/mnt/c/Program Files/grpc/include/ares_build.h:26:12:致命错误:winsock2.h:没有这样的文件或目录
#包括
^~~~~~~~~~~~
编译终止。
CMakeFiles/grpc.dir/build.make:4820:目标“CMakeFiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u wrapper.cc.o”的配方失败
make[2]:***[CMakeFiles/grpc.dir/src/core/ext/filters/client\u channel/resolver/dns/c\u ares/grpc\u ares\u wrapper.cc.o]错误1
CMakeFiles/Makefile2:702:目标“CMakeFiles/grpc.dir/all”的配方失败
生成[1]:***[CMakeFiles/grpc.dir/all]错误2
Makefile:129:目标“全部”的配方失败
make:**[全部]错误2

我应该安装一些没有文档记录的东西吗?

文件
winsock2.h
是一个Windows文件,但您正在尝试为Linux构建GRPC?你确定CMake是在Linux环境中运行的,因此它是为Linux正确配置的吗?@squareskittles我认为WSL是一个Linux环境。我以为这就是问题的关键所在。有没有办法强制告诉CMake它所处的环境?