▼スレッド
│
└◇2555:C言語のコンパイル方 [うみねこ] 11/10 10:12
├◇2556:Re:C言語のコンパイル方 [勉三] 11/10
│└◇2558:Re[2]:C言語のコンパイル方 [うみねこ] 11/11
└◇2557:Re:C言語のコンパイル方 [もぐりん] 11/10
├◇2559:Re[2]:C言語のコンパイル方 [うみねこ] 11/11
│├◇2560:Re[3]:C言語のコンパイル方 [きゃみ] 11/11
│├◇2564:Re[3]:C言語のコンパイル方 [勉三] 11/12
││└◇2566:Re[4]:C言語のコンパイル方 [な] 11/12
│└◇2568:Re[3]:C言語のコンパイル方 [な] 11/12 <
└◇2565:Re[2]:C言語のコンパイル方 [勉三] 11/12
└◇2567:Re[3]:C言語のコンパイル方 [な] 11/12
すいません、また来ました・・・。スレッド一覧
cygwinをダウンロードして、
さっそくCのコンパイラとして使おうと思って#include<stdio.h>
int main(void)
{ printf("Hello, World!");}
を、ダウンロードの際に作られたhomeというフォルダに入れて、
gcc hello.c (hello.cというファイル名にしました)
と入力しましたが、
hello.c:3:28: warning: no newline at end of file
と出てきてしまい、実行ファイルを作れませんでした。
どうやったらコンパイルができるようになるか、
どんなことでもいいので、ご存知の方、
どうか教えてください!
(メモ帳、windowsXPを使っていて、
恥ずかしいことですが、バージョンはわかりません・・・
超初心者です、ごめんなさい・・・)
a.exeとして出来ていませんか?スレッド一覧
できてました。gcc hello.cだけだったのでスレッド一覧
そうなちゃったんですね!
gcc hello.c -o hello
としたらちゃんとhello.exeが作れました。
ありがとうございました。
> hello.c:3:28: warning: no newline at end of fileスレッド一覧
これ以外にエラーメッセージが出ていませんか?
もしかしてソースを改行しないで1行に全部書いていないでしょうか?
それと、main関数の戻り値(return 0;)が抜けています。
C言語の本をよーく読んでから挑戦してください。
ちなみに、メモ帳で作成したソースでもちゃんと改行していれば、上記のワーニングメッセージは出ません。
それと、gccのコマンドラインオプションを指定していないので、実行ファイルはa.exeになります。
回答ありがとうございました!スレッド一覧
>> hello.c:3:28: warning: no newline at end of file
>これ以外にエラーメッセージが出ていませんか?
エラーメッセージはこれだけです。
return 0;もつけて全部改行もしたんですが、
#include<stdio.h>
int main(void)
{
printf ("Hello, World!");
return 0;
}
・・・やっぱり出てきます。
(実行ファイルはちゃんと出来るんですが)
いったい問題はなんなのでしょう?
#include<stdio.h>スレッド一覧
int main(void)
{
printf ("Hello, World!");
return 0;
}
上のプログラムの最後の行に2,3改行してからコンパイルしてみたら?最後の行を改行しないでエラーでることあるからさ。
メモ帳でコーディングしたため、改行コードが違うからでは?スレッド一覧
> メモ帳でコーディングしたため、改行コードが違うからでは?スレッド一覧
関係有りません。
# gcc-3.3.3-3 で確認済み
> いったい問題はなんなのでしょう?スレッド一覧
「問題」ではありません。
> > hello.c:3:28: warning: no newline at end of file
"warning" となっているので、コンパイルには大きく影響しない警告です。
例えば、環境変数を LANG=ja_JP.SJIS OUTPUT_CHARSET=CP932 と設定している
環境では、vi を使うと、ファイルを開いたときに、
"hello.c" [noeol][変換済][dos] 8L, 89C
というように表示されるはずです。
この状態でコンパイルすると、
hello.c:8:2: 警告: ファイル末尾に改行がありません
と表示されます。
きゃみさんがすでに指摘している通り、ファイルの最後に改行を入れるか、
最初から vi ないし、「プログラマ用」と銘打っているエディタを使う
べきでしょう。
> それと、main関数の戻り値(return 0;)が抜けています。スレッド一覧
> C言語の本をよーく読んでから挑戦してください。
exit(0); なのでは?
> exit(0); なのでは?スレッド一覧
ANSI C 89 以降の hosted environment ではどちらでも同じことです。
gcc-3.x は -traditional を指定しない限り関係ない話です。
# スタートアップルーチン辺りの話でもしたいですか?