C++ 什么是sys/ioctl.h?在何处/如何添加此项以安装libtecla?

C++ 什么是sys/ioctl.h?在何处/如何添加此项以安装libtecla?,c++,gcc,C++,Gcc,我正在尝试在Windows10上使用libtecla和bladeRF。然而,在尝试安装之后,我看到了以下错误。我不知道出了什么事。我看到它说没有名为sys/ioctl.h的文件或目录,但这是为什么?我将MinGW用于5.3.0的GCC二进制文件 $ make install

我正在尝试在Windows10上使用libtecla和bladeRF。然而,在尝试安装之后,我看到了以下错误。我不知道出了什么事。我看到它说没有名为sys/ioctl.h的文件或目录,但这是为什么?我将MinGW用于5.3.0的GCC二进制文件

$ make install                                                                                                                                                                                  

make[1]: Entering directory `/c/libtecla/libtecla'                                                                                                                                              

gcc -c -O  -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION="" -
DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DPACKAGE_URL="" -DSTDC_HEADERS=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DH
AVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -
DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1   -o 
normal_obj/getline.o ./getline.c                             
./getline.c:47:23: fatal error: sys/ioctl.h: No such file or directory                                                                                                                          

compilation terminated.                                                                                                                                                                         

make[1]: *** [normal_obj/getline.o] Error 1                                                                                                                                                     

make[1]: Leaving directory `/c/libtecla/libtecla'                                                                                                                                               

make: *** [normal] Error 2       

这个图书馆不应该有这个图书馆的参考资料吗?如果没有,我可以做些什么来解决这个问题

您需要安装POSIX兼容层。或者格式化你的计算机,安装Linux或其他基于POSIX的操作系统。我正试图通过cygwin实现这一点,但它仍然不起作用。什么是ioctl.h?如果我需要POSIX兼容性,这不应该通过cygwin实现吗?ioctrl提供了设备特定的底层控制,这些设备抽象在基于POSIX的操作系统上的基于文件的接口后面。GCC的MinGW端口将尝试编译一个Windows可执行文件,因此该工具链忽略了大部分POSIX内容,因为Windows的工作方式不同。您必须使用不同的GCC版本为Cygwin构建,并希望Cygwin能够提供您所需的所有POSIX功能。我找到了一个ioctl.h文件,是否需要在其中的特定位置?我可以简单地将其添加到路径中吗?不幸的是,没有。ioctrl.h提供了有关Windows中不存在的函数和数据结构的信息。除了标题,您还需要实现在Windows上按预期执行的函数。只添加头实际上是编译器的问题。您将能够编译,但当编译器将编译后的对象交给链接器以实际组装程序时,构建将失败。