私は、修士課程のコンピューターサイエンスコースに登録しています。コースはCを使用しており、インストラクタは Cygwin を使用して、ウィンドウを使用している場合にプログラムをコンパイルすることを望んでいます。
Cygwin をダウンロードしてインストールし、 GCCコンパイラ をインストールしたことを確認しました。
しかし、私はここからどこへ行くべきかわかりません。基本的なインクルードを持つ単一のソースファイルをコンパイルする必要があります。
#include <stdio.h>
ファイルがデスクトップにあると仮定しましょう(そうではありませんが、議論のためです)。 bashシェルからデスクトップに移動するにはどうすればよいですか? bashで正しい場所に移動したら、次のように実行するだけです。
gcc myProgram.c -o myProgram
Update:以下に掲載されているさまざまな指示に従って、プログラムをコンパイルすることができました。感謝します。しかし、結果のバイナリを実行すると、次のようになります。エラーが発生しないように、このプログラムをコンパイルまたは実行するにはどうすればよいですか?再びありがとう。
This application has failed to start because cygwin1.dll was not found. Re-installing the application may fix this problem.
cygwinで起動すると、通常UNIXのように$ HOMEにいます。これはデフォルトでc:/ cygwin/home/$ YOURNAMEにマップされます。したがって、すべてをそこに置くことができます。
また、cygwinから/ cygdrive/c /(たとえば/ cygdrive/c/Documents anb Settings/yourname/Desktop)を介してc:ドライブにアクセスすることもできます。
についてのあなたの更新された質問について cygwin1.dllが見つかりません。
Cygwinターミナルチェックから、
ls /usr/bin/cygwin1.dll
存在しない場合(疑わしい)、インストールは適切に行われていません。
次に、パスを確認して、
echo $PATH
これにより、:
で区切られたパスのリストが得られます。 /usr/bin
を含まなければなりません。不足していることがわかった場合は、追加してください、
export PATH=/usr/bin:$PATH
最後に、
要約すると、CygwinとWindows Vistaを使用してディレクトリに移動し、コードをコンパイルするコマンドがいくつかあります。
プロンプトで、cd
を使用して適切なディレクトリに変更します。
$ cd/cygdrive/c/Users/nate/Desktop
ls
を使用して、ディレクトリ内のファイルをリストします。
$ ls
prog.c
gcc
コマンドを使用して、このディレクトリ内のファイルをコンパイルします。
$ gcc prog.c -o prog
エラーが表示されない場合は、結果のプログラムを実行できるはずです。
$ ./prog
更新:
「Cygwin1.dll not found
」エラーについては、Nikの答えが好きです。また、 cygwin1.dllに関するこの関連記事が見つかりません をチェックすることもできます。これは、c:\cygwin\bin\
をWindows PATHに追加することを提案します。
Windows PATH変数を変更する方法に関する指示 がWindows XPにあり、Vistaでも同様だと思います。
c:\cygwin\bin
をリストに追加し、セミコロンで前のアイテムと区別するようにしますcygwin1.dll
not foundエラーに関して、私が少なくとも8年間使用してきた解決策は、マイコンピュータ->プロパティ->詳細->環境の%PATH%
の最後にCygwin binディレクトリを追加することです。変数。それらをパスの最後に追加するので、通常の作業では、最後に検索され、競合の可能性が最小限に抑えられます(実際、これまで競合の問題はありませんでした)。
Cygwin Bashシェルを呼び出すと、これらのディレクトリが%PATH%
の前に追加されるため、すべてがその環境でも意図したとおりに機能します。
Cygwin Shellで実行していない場合、私の%PATH%
は次のとおりです。
Path=c:\opt\Perl\bin; \
...
C:\opt\cygwin\bin; \
C:\opt\cygwin\usr\bin; \
C:\opt\cygwin\usr\local\bin;
このように、たとえば、ActiveState PerlのPerlは、Cygwin Shellを使用していないときに最初に検出されますが、Cygwin Shellを使用するとCygwin Perlが検出されます。
探す(つまり、cd
to)
/cygdrive/c/
通常はC:\
Cygwinの使用 、 Lifehackerの紹介(2006年6月) 、およびこの PhysioNetのbiomedページ もご覧ください。
Bashに慣れていない場合は、標準のWindowsコマンド(つまり、DOS)シェルで作業を続けることができます。
これを機能させるには、Windows PATH変数にC:\ cygwin\bin(またはローカルの代替)を追加する必要があります。
1)コマンド(DOS)シェルを開く2)コードの場所にディレクトリを変更する(c :、次にcd path\to\file)3)gcc myProgram.c -o myProgram
Nikの応答で述べたように、「Cygwinの使用」ドキュメントは、さらに学ぶのに最適な場所です。
Gcc program.c -o program -mno-cygwinを実行するだけで問題なくコンパイルされ、cygwin1.dllをパスに追加する必要がなくなり、実行可能なコンピューターに実行可能ファイルを配布できます。 cygwinがインストールされていて、引き続き実行されます。お役に立てれば
WindowsパスC:\src
cygwinの下では/cygdrive/c/src
このファイル(cygwin1.dll)は、qt依存関係と同様のcygwin依存関係です。このファイルと、このようなメッセージエラーに表示される類似ファイルを、「cygwin/bin」からプログラムのフォルダーにコピーする必要があります。 cygwinを持たない別のコンピューター!
Cygwinを使用してCプログラムをコンパイルする
Cygwinでgccコンパイラを使用してプログラムをコンパイルします。
1)Cygwinを起動します
2)次のように入力して、このクラス用に作成したディレクトリに変更します
cd c:/ windows/desktop
3)入力してプログラムをコンパイルします
gcc myProgram.c -o myProgram
コマンドgccは、gccコンパイラーを呼び出してCプログラムをコンパイルします。
Cygwin Shell内でファイルを編集する方が良いかもしれません。通常、起動時にはデフォルトのユーザーディレクトリがあります。 「vi somefile.c」または「emacs somefile.c」のようなことをして、シェルからファイルを編集できます。これは、viまたはemacsがcygwinにインストールされていることを前提としています。
デスクトップにファイルする場合は、「/ cygwindrive/c/Documents\and\Settings/Frank/Desktop」に類似したパス(XP上)に移動する必要があります(メモリが正しく機能する場合)。そのパスにcdし、ファイルに対してコマンドを実行するだけです。
Cygwinはとてもクールです!他のシステム(Linuxなど)からプログラムをコンパイルできますそしてそれらは動作します。私は通信プログラム、またはWebサーバーについても話します。
ここに1つのトリックがあります。 Windowsファイルエクスプローラーでファイルを表示している場合、bashウィンドウで「cd」と入力し、エクスプローラーのアドレスバーからcygwinウィンドウにドラッグすると、フルパスがコピーされます。ちなみに、これはWindowsコマンドシェルでも機能します。
また、「cd/cygdrive/c」は正式なパスですが、「cd c:」もショートカットとして受け入れます。残りのパスにドラッグする前に、これを行う必要がある場合があります。
Stdio.hファイルは、従来のシステムと同様に自動的に検出されるはずです。