6

普段はVSを使っていますが、cygwinは初めてです。Windows 7 を使用していますが、gcc を使用して hello world プログラムをコンパイルすると、「致命的なエラー: conio.h: そのようなファイルまたはディレクトリはありません」と表示されます。

Windows 7 を使用していますが、システムに conio.h がないようです。誰かがこの問題を解決する方法を教えてください。

ありがとう!!

4

2 に答える 2

3

conio.hCygwin には、 !というヘッダー ファイルは存在しません。また、使用せずに画面を自動的に保持し、Cygwinを使用しているgetch()ため、必要ありclrscr()ません。system("clear")

于 2014-08-06T18:38:23.023 に答える
1

conio は標準ライブラリの一部ではないため、クロスプラットフォームで、または同じプラットフォームのコンパイラ間でさえも利用できるとは期待できません。

非標準であるため、conio という名前は Borland と Microsoft の両方で、異なる API を持つライブラリに使用されています。Microsoft の名前ははるかに小さいです。そのため、移植性のためにそれを避けるかもしれません。

conio が Windows 上にないことは問題ではありません。Cygwin は、Windows 上で POSIX コードをビルドおよび実行するための POSIX API レイヤーおよびツール チェーンです。提供されるライブラリは、Visual Studio で提供されるものとは独立しています。

以下を含む多くのソリューションがあります。

  • ncurses などの代替コンソール I/O ライブラリを使用します。
  • このような Linux 用の conio ソース コード実装を使用します (ncurses を使用し、Borland の API を実装します)。

2 番目の解決策は、conio を使用するレガシー コードが多数ある場合にはおそらく便利ですが、コンソール ウィンドウが閉じないようにするだけの場合はやり過ぎです。そのためにはgetchar()、どのような場合でも使用して、任意のキーではなくエンターを押す必要があることを受け入れることができます。

Windows で GCC を使用できるようにするためだけに Cygwin を使用している場合は、代わりに MinGW/GCC を使用することをお勧めします。これは、GNU ではなく Microsoft の C ランタイムを使用し、POSIX ではなく Win32 API を使用します。

于 2014-08-06T19:47:24.930 に答える