Не удается открыть источник файл conio h
И это ошибка. Нет причин, по которым система может найти его, потому что он используется в нескольких других файлах, только этот файл не может с ним работать. В качестве ссылки, весь файл, который содержит ошибки (ColorBasics.rc):
2 Answers 2
The conio.h -- clrscr() -- getch() path is not followed in Linux. By this, I mean, you need not use conio.h and it's functions on a Linux platform.
1. clrscr() : Since you are planning on using ncurses , there is a clear() function included in it, which clears the screen. Just replace clrscr() with clear() .
2. getch() : Linux provides a wide array of such functions like gets, fgets, scanf and so on.
3. ncurses : In Linux, ncurses does not depend on conio at all. So this is again unnecessary.
clrscr() and getch() are both part of conio.h . It is primarily used in MS-DOS based compilers. In Linux, they are kinda unnecessary.
@slm - Most Linux programmers do not bother with conio.h. And when I say "by default", Please note that conio is not part of the C standard library, ISO C nor is it defined by POSIX. So basically, it is not native in Linux. And if you go through the question, conio + clrscr + getch combination clearly indicate it was a program originally written on some windows based compiler, like TurboC. I stand by my answer. Conio is not something native to Linux.
Your 1st sentence is the key item. This situation would seem to be cpp code that was developed for Windows and the OP is now compiling it on Linux. So they have 2 options. Either bring this library into the include path or go through the code base and do a replacement on calls.
There's not "replacement" as such. clrscr and getch are unnecessary. And as for clrscr , The program already is going to use ncurses, which has clear() for this purpose.
We are saying the same thing now. They can either use the library or address the missing functions in their code base. Which ever is easier to them is their choice, we are merely giving them the options available!
You basically have 2 choices on how to proceed. You can either install a package that includes conio.h + its library as I describe below or you can use ncurses.h + its library and swap out and/or remove function calls that depend on it as @Ashish Kulkarni describes in his answer. Either option is viable and is up to the developer/implementer to decide which is the "correct" path.
The conio.h header + library for C/C++ is not something you'll typically find as being installed by default with most Linux distros. At least not the ones that I'm familiar with Fedora/CentOS/RHEL/Debian/Ubuntu.
NOTE:: Also the use of ncurses.h is not appropriate here either, since that library will likely not include any of the functions that you're looking for ( clrscr() , getch() , etc.) since your .cpp file would seem to be coming from a Windows environment originally.
However you have the option with Linux to install packages from centrally managed repositories. Looking for a package that includes conio.h on my Fedora system I turned up this package. I realize you're on Ubuntu but on Fedora the package is called libconio that provides exactly the libraries that you're looking for.
Looking on a Ubuntu system I have there's a similar package called elks-libc that also contains conio.h .
And here's the file:
So you can simply install this package to get the header file + libraries that your application requires to compile.
NOTE: You may need to adjust your include path to gcc to pick this header file up.
Общие ошибки выполнения conio.h
Ошибки файла conio.h часто возникают на этапе запуска C-Free, но также могут возникать во время работы программы. Эти типы ошибок H также известны как «ошибки выполнения», поскольку они возникают во время выполнения C-Free. К числу наиболее распространенных ошибок выполнения conio.h относятся:
- Не удается найти conio.h.
- conio.h — ошибка.
- Не удалось загрузить conio.h.
- Ошибка при загрузке conio.h.
- Не удалось зарегистрировать conio.h / Не удается зарегистрировать conio.h.
- Ошибка выполнения — conio.h.
- Файл conio.h отсутствует или поврежден.
Программа: C:\Program Files (x86)\C-Free 5\mingw\include\conio.h
Среда выполнения получила запрос от этого приложения, чтобы прекратить его необычным способом.
Для получения дополнительной информации обратитесь в службу поддержки приложения.
В большинстве случаев причинами ошибок в H являются отсутствующие или поврежденные файлы. Файл conio.h может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с C-Free) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла conio.h может быть вызвано отключением питания при загрузке C-Free, сбоем системы при загрузке или сохранении conio.h, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Шаг 3. Выполните обновление Windows.
Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла conio.h. Мы храним полную базу данных файлов conio.h со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии C-Free . Чтобы загрузить и правильно заменить файл, выполните следующие действия:
Windows 10: C:\Program Files\MATLAB\R2019b\sys\lcc\include\
Windows 10: C:\Program Files (x86)\C-Free 5\mingw\include\
Windows 10: C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include\
Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.
СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с conio.h. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.
Want to improve this question? Update the question so it's on-topic for Unix & Linux Stack Exchange.
Closed 8 years ago .
"program.cpp:4:20: fatal error: conio.h: No such file or directory compilation terminated."
I've tried with the curses.h header file also, but still showing the same error as above. I need to use this header file because I'm using the clrscr() and getch() functions which require it.
Can anybody tell me how to rectify this problem?
conio.h is not a C++ function. It is a Microsoft function. As such, you'll struggle to find it on Ubuntu.
@LightnessRacesinOrbit conio.h is Microsoft? Odd, I distinctly remember Borland Turbo C 2.0 (at least) having it, and that was decidedly not Microsoft.
@MichaelKjörling It stemmed from DOS compilers, yes. Everything you need to know is on the Wikipedia page.
Решение
Возникла та же проблема с переносом проекта с VS2013 на VS2017,
Исправлено: измените «Свойства-> Общие-> Версия Windows SDK» на 10
2 Answers 2
In Cygwin there doesn't exist any such header file called conio.h ! Also, you don't need it either because it automatically holds screen for you without using getch() and for clrscr() you do have system("clear") in Cygwin!
@Shekhar..Thanks!! But the output screen is not holding. Thats why I was forced to use getch() and run into this missing conio.h trouble.
@SatyaAshokKumar-That's probably because of your code error or something like infinite loop. Please try executing hello world program and then comment!
@SatyaAshokKumar: You say "the output screen is not holding". Do you mean that the terminal window is vanishing immediately after the program runs? You can avoid that by running the program from a command line rather than by double-clicking its icon.
conio not being part of the standard library, you cannot expect it to be available cross-platform, or even between compilers on the same platform.
Being, non-standard, the name conio has been used by both Borland and Microsoft for libraries with differing APIs - Microsoft's is much smaller. So for that reason you might avoid it for portability.
It is not a matter of conio not being on Windows, Cygwin is a POSIX API layer and tool-chain for building and running POSIX code on Windows. The libraries provided with it are independent of those provided with Visual Studio.
There are a number of solutions including:
- Use an alternative console I/O library, such as ncurses.
- Use a conio source code implementation for Linux such as this (which uses ncurses and implements Borland's API).
The second solution is perhaps useful if you have a lot of legacy code using conio, but is overkill if you just want to prevent a console windows from closing. For that you could just use getchar() in any case and accept that you will have to press enter rather than any key.
If you are using Cygwin just to be able to use GCC on Windows, you might be better off using MinGW/GCC instead. This uses Microsoft's C runtime rather than GNU, and the Win32 API rather than POSIX.
Файлы C/C++/Objective-C Header, такие как conio.h, используют расширение H. Файл считается файлом Разработчик (C/C++/Objective-C Header) и впервые был создан компанией Program Arts для пакета ПО C-Free 5.0 Pro.
Первый выпуск файла conio.h в ОС Windows 10 состоялся 04/27/2015 в составе Orwell Dev-C++ 5.11. Последнее обновление для C-Free 5.0 Pro состоялось 01/04/2010 [версия файла 5.0 Pro]. Файл conio.h входит в комплект C-Free 5.0 Pro, MATLAB R2009a и Orwell Dev-C++ 5.11.
В этой статье приведены подробные сведения о conio.h, руководство по устранению неполадок с файлом H и список версий, доступных для бесплатной загрузки.
Совместимость с Windows 10, 8, 7, Vista, XP и 2000
Средняя оценка пользователей
Сведения о разработчике и ПО | |
---|---|
Программа: | C-Free 5.0 Pro |
Разработчик: | Program Arts |
Программное обеспечение: | C-Free |
Версия ПО: | 5.0 Pro |
Сведения о файле | |
---|---|
Размер файла (байты): | 1387 |
Дата первоначального файла: | 11/22/2019 |
Дата последнего файла: | 12/31/2019 |
Информация о файле | Описание |
---|---|
Размер файла: | 1387 bytes |
Дата и время изменения файла: | 2019:12:31 10:40:46+00:00 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):
Если на этапе 1 не удается устранить ошибку conio.h, перейдите к шагу 2 ниже.
Смотрите также:
Я получил эту ошибку фатальная ошибка lnk1104: не могу открыть файл ‘kernel32.lib’. эта ошибка возникает из-за отсутствия пути в каталогах VC ++. Для решения этой проблемы
Откройте Visual Studio 2008
- перейдите в каталог Tools-options-Projects and Solutions-VC ++- *
- затем в правом углу выберите Библиотека файлов
- здесь вам нужно добавить путь к kernel132.lib
В моем случае это C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Lib
I usually use VS but trying cygwin for the first time. I am using windows 7 but on compiling hello world program using gcc, it says "fatal error: conio.h: no such file or directory".
I am using Windows 7 and it seems conio.h is missing from my system. Can someone please tell me how to resolve this issue.
Simple answer: Don't use it. If this doesn't help you: What function from
@haccks : conio is not exclusive to Turbo C++, Microsoft's VS2013 continues to to provide a conio API, which appears to be what he was previously using - of course not being standardised, it differs from Borland's conio!
I know..I am not using it. I needed a replacement for getch() and am now using getchar(). I was just curious is knowing as to why it wouldnt work Thanks!!
Решение
Если вы этого еще не сделали, попробуйте добавить "SDK Path\Include" чтобы:
И добавить "SDK Path\Lib" чтобы:
Также попробуйте поменять "Windows.h" в
Если это не поможет, проверьте физическое существование файла, он должен находиться в папке «\ VC \ PlatformSDK \ Include» в каталоге установки Visual Studio.
Шаг 2. Если вы недавно установили приложение C-Free (или схожее программное обеспечение), удалите его, затем попробуйте переустановить C-Free.
Чтобы удалить программное обеспечение C-Free, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):
После полного удаления приложения следует перезагрузить ПК и заново установить C-Free.
Если на этапе 2 также не удается устранить ошибку conio.h, перейдите к шагу 3 ниже.
Другие решения
Столкнулся с проблемой пропавших без вести stdlib.h а также stdio.h (а может и больше) после установки VS2017 Community на новый компьютер и переноса решения с VS2013 на VS2017.
Сейчас мои проекты строятся без проблем.
Обратите внимание, что вам может потребоваться сделать проект стартовым проектом для ретаргетинга.
Есть три способа решить эту проблему.
Переустановите Visual Studio
Это также сработало для меня, потому что я понял, что, возможно, что-то не так с моим Windows SDK. Я использовал Windows 10, но с Windows SDK 8.1. У вас может быть и эта проблема.
шаги: Откройте установщик Visual Studio> щелкните трехстрочную строку меню> Удалить> Перезагрузите компьютер> Откройте установщик Visual Studio> Установите то, что вам нужно, но убедитесь, что вы устанавливаете только последнюю версию Windows SDK 10, а не несколько или 8.1.
У меня была похожая проблема после обновления моего VS2017. Проект построен хорошо; но много «ошибок», когда код был поднят в редакторе. Даже попробовал переустановить VS. Я смог решить эту проблему, установив для параметра «Игнорировать стандартные пути включения» значение «Да». Попытка построить решение с большим количеством ошибок. Вернулся и установил опцию на Нет. После восстановления моя проблема ушла.
Если вы не хотите использовать Windows SDK для Windows 10 (например, вы можете работать над проектом с открытым исходным кодом, решение которого не принимается вами), вы можете решить эту проблему в проекте Windows SDK 8.1 с помощью навигационный Tools -> Get Tools and Features. -> Individual Compontents tab и установка отдельных компонентов «Windows 8.1 SDK» (в составе SDK, библиотек и сред) и «Windows Universal CRT SDK» (в разделе «Компиляторы», средства сборки и среды выполнения):
У меня была такая же проблема при создании VS 2013 Project с помощью Visual Studio 2017 IDE.
Решением было установить правильный «Platformtoolset v120 (Visual Studio 2013)». Для этого должен быть установлен Windows SDK 8.1.
Если вы хотите использовать Platformtoolset v141 (Visual Studio 2017), необходимо установить Windows SDK 10.
Platformtoolset может быть выбран в диалоге свойств проекта: General -> Platformtoolset
elks-libc is only for 8088 Intel processors
As mentioned in the comments, elks-libc is intended for use on system's that are targeting the Intel 8088 CPU. You can instead download libconio.h from the SourceForge project titled: Linux c++ implementation of conio.h. You'll have to install it manually but it shouldn't be too difficult to do this.
Simple Linux implementation of Borland's conio (conio.h) library. It uses Ncurses. It includes most functions required to write a basic application using conioh (i.e. getch(), cprintf(), puts() and more).
You can also get the entire libconio project's source from this SourceForge project titled: libconio and unpack it.
Details on doing this as well as building it and compiling it are covered in this tutorial titled: How to use with GCC.
Детали системы:
Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
— Установленная разработка рабочего стола с C ++ (Снимок экрана: Список установки )
Шаг 1: Я написал знаменитую программу Hello World на C ++.
Шаг 2: Я нажал на Построить> Построить решение.
Проблема: ‘Stdio.h’: Данный файл или каталог отсутствует. Полная ошибка:
Детали по устранению неполадок / Вещи, которые я пробовал:
-
Свойства конфигурации> Каталоги VC ++
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
Код в stdafx.cpp файл:
Код в stdafx.h файл:
Другие решения
Запустите Visual Studio. Перейдите в Инструменты-> Параметры и разверните Проекты и решения.
Выберите каталоги VC ++ из дерева и выберите «Включить файлы» в комбинированном списке справа.
Тебе следует увидеть:
Если этого не хватает, вы нашли проблему. Если нет, найдите файл. Он должен быть расположен в
C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Включить
C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v6.0A \ Включить
если VS был установлен в каталог по умолчанию.
Если вы ориентируетесь на Windows XP ( v140_xp ), попробуйте установить Поддержка Windows XP для C ++.
Начиная с Visual Studio 2012, набор инструментов по умолчанию (v110) прекратил поддержку Windows XP. В результате Windows.h ошибка может возникнуть, если ваш проект ориентирован на Windows XP с пакетами C ++ по умолчанию.
Проверьте, какая версия Windows SDK указана в вашем проекте Набор инструментов платформы. ( Project → Properties → Configuration Properties → General ). Если ваш Toolset заканчивается _xp Вам нужно будет установить поддержку XP.
Откройте установщик Visual Studio и нажмите изменять для вашей версии Visual Studio. Открой Отдельные компоненты вкладка и прокрутите вниз до Компиляторы, инструменты сборки и среды выполнения. Около дна, проверьте Поддержка Windows XP для C ++ и нажмите изменять начать установку.
Читайте также: