conio.h 파일 누락 오류 [닫기]

conio.h 파일 누락 오류 [닫기]

헤더 파일을 .cpp포함한 파일을 실행 하고 싶은데 실행 시 다음과 같은 오류가 발생합니다.#include <conio.h>

"program.cpp:4:20: 치명적인 오류: conio.h: 해당 파일 또는 디렉터리 컴파일이 종료되지 않았습니다."

헤더 파일 도 사용해 보았지만 curses.h여전히 위와 같은 오류가 표시됩니다. 이 헤더가 clrscr()필요한 및 기능을 사용하고 있기 때문에 이 헤더를 사용해야 합니다 .getch()

누구든지 이 문제를 해결하는 방법을 말해 줄 수 있나요?

답변1

conio.h -- clrscr() -- getch() 경로는 Linux에서 따르지 않습니다.. 내 말은, Linux 플랫폼에서는 conio.h와 그 기능을 사용할 필요가 없다는 것입니다.

1. clrscr():사용할 예정이므로 ncurses화면 clear()을 지우는 기능이 포함되어 있습니다. clrscr()으로 바꾸시면 됩니다 clear().

2. getch():Linux는 get, fgets, scanf 등과 같은 수많은 기능을 제공합니다.

3.n저주:Linux에서 ncurses는 conio에 전혀 의존하지 않습니다. 다시 말하지만 이것은 불필요합니다.

clrscr()그리고 getch()그것은 모두 의 일부입니다 conio.h. 주로 MS-DOS 기반 컴파일러에서 사용됩니다. Linux에서는 다소 불필요합니다.

답변2

긴 이야기 짧게

기본적으로 진행 방법에는 두 가지 옵션이 있습니다. conio.h아래 설명과 같이 +its 라이브러리가 포함된 패키지를 설치하거나 ncurses.h+its 라이브러리를 사용하고 다음과 같이 이에 의존하는 함수 호출을 교체 및/또는 제거할 수 있습니다.@ashkulkarni그의 대답에 설명되어 있습니다. 두 옵션 모두 가능하며 어느 것이 "올바른" 경로인지 결정하는 것은 개발자/구현자의 몫입니다.


conio.h대부분의 Linux 배포판은 일반적으로 기본적으로 C/C++용 헤더+ 라이브러리를 설치하지 않습니다. 적어도 내가 익숙한 Fedora/CentOS/RHEL/Debian/Ubuntu는 아닙니다.

노트::또한 파일이 원래 Windows 환경에서 나온 것처럼 보이기 때문에 ncurses.h라이브러리에 찾고 있는 기능( clrscr(), getch()등) 이 포함되어 있지 않을 수 있으므로 여기서 사용하는 것은 부적절합니다..cpp

그러나 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-libcIntel 8088 CPU를 대상으로 하는 시스템에서 사용하기 위한 것입니다. 대신 libconio.h다음과 같은 제목의 SourceForge 프로젝트에서 다운로드할 수 있습니다 .conio.h의 Linux C++ 구현. 수동으로 설치해야 하지만 그리 어렵지는 않습니다.

Borland conio(conio.h) 라이브러리의 간단한 Linux 구현입니다. Ncurses를 사용합니다. 여기에는 conioh(예: getch(), cprintf(), puts() 등)를 사용하여 기본 응용 프로그램을 작성하는 데 필요한 대부분의 기능이 포함되어 있습니다.

libconio또한 이 SourceForge 프로젝트에서 전체 프로젝트의 소스 코드를 얻을 수도 있습니다.쿠네오그리고 패키지를 열어보세요.

이 작업을 수행하고 빌드하고 컴파일하는 방법에 대한 자세한 내용은 다음 튜토리얼에서 확인할 수 있습니다.GCC와 함께 사용하는 방법.

관련 정보