Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇2557:
Re:C言語のコンパイル方 [もぐりん] 11/10 20:16

 ├◇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


2557● Re:C言語のコンパイル方[ もぐりん ] 2004 11/10 20:16
> hello.c:3:28: warning: no newline at end of file
これ以外にエラーメッセージが出ていませんか?

もしかしてソースを改行しないで1行に全部書いていないでしょうか?
それと、main関数の戻り値(return 0;)が抜けています。
C言語の本をよーく読んでから挑戦してください。
ちなみに、メモ帳で作成したソースでもちゃんと改行していれば、上記のワーニングメッセージは出ません。
それと、gccのコマンドラインオプションを指定していないので、実行ファイルはa.exeになります。
スレッド一覧


2559● Re[2]:C言語のコンパイル方[ うみねこ ] 2004 11/11 05:03
回答ありがとうございました!
>> hello.c:3:28: warning: no newline at end of file
>これ以外にエラーメッセージが出ていませんか?

エラーメッセージはこれだけです。
return 0;もつけて全部改行もしたんですが、
#include<stdio.h>

int main(void)

{
printf ("Hello, World!");

return 0;
}
・・・やっぱり出てきます。
(実行ファイルはちゃんと出来るんですが)
いったい問題はなんなのでしょう?
スレッド一覧


2560● Re[3]:C言語のコンパイル方[ きゃみ ] 2004 11/11 05:10
#include<stdio.h>

int main(void)

{
printf ("Hello, World!");

return 0;
}

上のプログラムの最後の行に2,3改行してからコンパイルしてみたら?最後の行を改行しないでエラーでることあるからさ。
スレッド一覧


2564● Re[3]:C言語のコンパイル方[ 勉三 ] 2004 11/12 13:41
メモ帳でコーディングしたため、改行コードが違うからでは?
スレッド一覧


2566● Re[4]:C言語のコンパイル方[ な ] 2004 11/12 20:09
> メモ帳でコーディングしたため、改行コードが違うからでは?

関係有りません。
# gcc-3.3.3-3 で確認済み
スレッド一覧


2568● Re[3]:C言語のコンパイル方[ な ] 2004 11/12 20:29
> いったい問題はなんなのでしょう?

「問題」ではありません。

> > 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 ないし、「プログラマ用」と銘打っているエディタを使う
べきでしょう。
スレッド一覧


2565● Re[2]:C言語のコンパイル方[ 勉三 ] 2004 11/12 17:24
> それと、main関数の戻り値(return 0;)が抜けています。
> C言語の本をよーく読んでから挑戦してください。

exit(0); なのでは?
スレッド一覧


2567● Re[3]:C言語のコンパイル方[ な ] 2004 11/12 20:19
> exit(0); なのでは?

ANSI C 89 以降の hosted environment ではどちらでも同じことです。
gcc-3.x は -traditional を指定しない限り関係ない話です。
# スタートアップルーチン辺りの話でもしたいですか?
スレッド一覧

早田のホームページへ
CGIROOM