我是 ubuntu 操作系统的初学者。在终端框中,我尝试使用 Visual Studio 运行简单的 C 编程代码,它向我显示 ***
致命错误:conio.h:没有这样的文件或目录
那种错误。那么,我应该怎么做才能解决这个错误?
答案1
该头文件来自旧的 MS-DOS 开发接口。您可以(几乎)将其替换为curses.h
.欲了解更多详细信息,您可以查看这个答案。
conio.h
是旧的 MS-DOS 编译器中用于创建文本用户界面的 C 头文件。针对非 DOS 操作系统(例如 Linux、Win32 和 OS/2)的编译器提供了这些函数的不同实现。将为
#include <curses.h>
您提供几乎所有提供的功能conio.h
nucurses需要首先安装
在基于 deb 的发行版中使用
sudo apt-get install libncurses5-dev libncursesw5-dev
答案2
你所做的就是停止尝试编写 MS/PC-DOS 程序。您正在使用完全不同的操作系统。
conio.h
是包含 C 语言与 DOS API 绑定的标头之一。使用它的程序是 MS/PC-DOS 程序。
人们会告诉你诅咒“做同样的事情”。实际上并非如此,因为 DOS 控制台 API 与基于 POSIX 终端 I/O 构建的全屏 TUI 具有完全不同的范例。从一个到另一个的移植是不是就像更改头文件一样简单。 (OS/2 和 Windows NT 的编译器中存在兼容性标头,因为这些操作系统具有“控制台”I/O 范例,可以更好地映射到 DOS 控制台 API。)这还没有考虑到存在两个这样的事实:旧 DOS 代码、Borland/Watcom 和 Microsoft 中使用的控制台 API 风格。
这正确的改变就是简单地忘记 30 年前的 DOS API,并编写一个使用实际操作系统 API 的程序:POSIX 终端 I/O 和您选择的 TUI 库,X11 和您选择的工具包,等等。
进一步阅读
- 乔纳森·德博因·波拉德 (2010)。C 和 C++ 语言上的 gen 绑定到 DOS API。常见答案。
- https://unix.stackexchange.com/a/558840/5132