conio.h 文件丢失错误

conio.h 文件丢失错误

我想.cpp在包含#include <conio.h>头文件的情况下执行文件,但在执行时出现以下错误:

“program.cpp:4:20:致命错误:conio.h:没有此类文件或目录编译终止。”

我也尝试过使用curses.h头文件,但仍然显示与上面相同的错误。我需要使用这个头文件,因为我正在使用需要它的clrscr()和函数。getch()

谁能告诉我如何解决这个问题?

答案1

Linux 中不遵循 conio.h -- clrscr() -- getch() 路径。我的意思是,您不需要在 Linux 平台上使用 conio.h 及其函数。

1. clrscr() :由于您计划使用ncurses,因此clear()其中包含一个清除屏幕的功能。只需替换clrscr()clear().

2. getch() :Linux 提供了大量此类函数,如 gets、fgets、scanf 等。

3.ncurses:在Linux中,ncurses根本不依赖conio。所以这又是不必要的。

clrscr()并且getch()都是 的一部分conio.h。它主要用于基于 MS-DOS 的编译器。在 Linux 中,它们有点不必要。

答案2

长话短说

对于如何继续,您基本上有两种选择。您可以安装包含conio.h+其库的软件包,如下所述,或者您可以使用ncurses.h+其库并换出和/或删除依赖于它的函数调用,如下所示@阿什库尔卡尼在他的回答中描述。任一选项都是可行的,并且由开发人员/实施者决定哪一个是“正确”的路径。


conio.h大多数 Linux 发行版通常不会默认安装 C/C++ 的标头 + 库。至少不是我熟悉的Fedora/CentOS/RHEL/Debian/Ubuntu。

笔记::此外,此处的使用ncurses.h也不合适,因为该库可能不包含您正在寻找的任何函数(clrscr()getch()等),因为您的.cpp文件似乎最初来自 Windows 环境。

但是,您可以选择使用 Linux 从集中管理的存储库安装软件包。在寻找包含在我的 Fedora 系统上的软件包时,conio.h我发现了这个软件包。我知道您使用的是 Ubuntu,但在 Fedora 上,该软件包libconio恰好提供了您正在寻找的库。

$ yum info libconio.i686
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Available Packages
Name        : libconio
Arch        : i686
Version     : 1.0.0
Release     : 3.2
Size        : 6.3 k
Repo        : rpm-sphere
Summary     : Implementation of conio.h functions
License     : GPL
Description : libconio is an implementation of conio.h functions that some 
            : DOS and Windows compilers provide. It's purpose is to allow 
            : developers to use functions like getch, getche, textcolor and 
            : others in a linux environment.

在 Ubuntu 系统上,我有一个类似的软件包,名为 ,elks-libc它也包含conio.h.

$ apt-cache show elks-libc
Package: elks-libc
Priority: optional
Section: devel
Installed-Size: 651
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Juan Cespedes <[email protected]>
Architecture: all
Source: linux86
Version: 0.16.17-3.1ubuntu3
Replaces: bcc (<< 0.14.9), linux86
Recommends: bcc (= 0.16.17-3.1ubuntu3)
Conflicts: linux86
Filename: pool/main/l/linux86/elks-libc_0.16.17-3.1ubuntu3_all.deb
Size: 214574
MD5sum: 75d87d8c2c906579ec84624fff93d76d
SHA1: 5cd6d3b9c5a881ad5fcdcffbd5a075761b017731
SHA256: 57bee73becbeae5dc2bc4cd859c13dc065e4a49472d876225e3e37fd6538feb2
Description-en: 16-bit x86 C library and include files
 This is the C library used to compile with bcc. It includes all the
 headers and static libraries needed to build 16-bit applications,
 for Linux/8086, Linux/i386 and DOS .COM executables.
Description-md5: 2da04d6881989db1f4a11df4a992c06f
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m

这是文件:

$ apt-file list elks-libc | grep conio.h
elks-libc: /usr/lib/bcc/include/conio.h

因此,您只需安装此软件包即可获取应用程序编译所需的头文件和库。

$ sudo apt-get install elks-libc

笔记:您可能需要调整包含路径才能gcc选择此头文件。

elks-libc 仅适用于 8088 Intel 处理器

正如评论中提到的,elks-libc旨在用于针对 Intel 8088 CPU 的系统。您可以改为下载libconio.h从 SourceForge 项目下载,标题为:conio.h 的 Linux C++ 实现。您必须手动安装它,但这应该不会太困难。

Borland 的 conio (conio.h) 库的简单 Linux 实现。它使用 Ncurses。它包括使用 conioh 编写基本应用程序所需的大多数函数(即 getch()、cprintf()、puts() 等)。

libconio您还可以从此 SourceForge 项目获取整个项目的源代码:库尼奥并打开包装。

有关执行此操作以及构建和编译它的详细信息,请参见本教程,标题为:如何与 GCC 一起使用

相关内容