我通常使用VS,但第一次尝试cygwin。 我使用的是Windows 7,但使用gcc编译hello world程序,它说“致命错误:conio.h:没有这样的文件或目录”。
我正在使用Windows 7,似乎conio.h从我的系统中丢失。 有人可以告诉我如何解决这个问题。
谢谢!!
在Cygwin中不存在任何这样的名为conio.h
头文件! 此外,你不需要它,因为它会自动保存屏幕,而不使用getch()
和clrscr()
你在Cygwin中有system("clear")
!
conio不是标准库的一部分,你不能指望它是跨平台的,甚至在同一个平台上的编译器之间。
作为非标准,Borland和Microsoft都使用conio这个名字,用于不同API的库 – 微软的规模要小得多。 所以出于这个原因,你可能会避免它的可移植性。
Cygwin是一个在Windows上构建和运行POSIX代码的POSIX API层和工具链。 提供的库独立于Visual Studio提供的库。
有许多解决方案,包括:
如果你有很多使用conio的遗留代码,第二个解决方案可能是有用的,但如果你只是想阻止一个控制台窗口关闭,则是过度的。 为此,你可以在任何情况下使用getchar()
,并接受你将不得不按下输入,而不是任何键。
如果您使用Cygwin只是为了能够在Windows上使用GCC,那么最好使用MinGW / GCC。 这使用微软的C运行时而不是GNU,而使用Win32 API而不是POSIX。
conio.h是由Borland的Turbo C编译器提供的一个非标准头文件,它是一个不合规的C编译器本身。 Cygwin是类似unix的环境的Windows模拟,没有它(事实上,我不知道任何其他编译器提供了conio.h
)。
Can someone please tell me how to resolve this issue.
解决这个问题的最好方法是不要使用它:)
相反,你可以使用ncurses,如果你想要的东西提供了相似的功能,并编译:
gcc test.c -lncurses