• ベストアンサー

gcc+  デバッグは成功するが、エラー表示が出る

Cの初心者です。 エディタで書いたCのソースファイルを、エンコードを932,Shift_Jisとして保存し、gccのコンパイラで実行すると "Warnig:No new line at end of file" と表示される。コンパイラは成功し、デバッグは正常に実行されるが、表示の意味が理解できない。又、この表示が出ないようにするには、どうしたらいいのでしょうか。 わかる方、よろしく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

コンパイルすることと実行することは分けて考えてください。 このエラーは、コンパイル時に出力されるものですね。 ソースコードの最後が改行で終わってないよってエラーですので、最後の行を改行すれば出なくなります。

merry-04
質問者

お礼

ご回答いただきありがとうございました。 ある本に、コンパイラすると直ぐ実行できると書いたあったものですから、てっきり、そのように思いこんでいました。コンパイラの意味がよくわかりました。 簡単なファイルを書いて、改めて試してみました。ご回答のとおりです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4858/10274)
回答No.2

日本に訳すと、「警告: ファイルの終わりに改行が無い」。 エディタで、ファイルの末尾に改行を追加すれば出なくなります。 「ファイルが途中でちぎれていませんか?」ということで警告を出してるんだと思います。

merry-04
質問者

お礼

ご回答をいただき、有難うございました。 今までBorland bcc55を使っていたのですが、昨日からgccのコンパイラを試してみて、この表示が出るようになり、気になっていました。 疑問が解決してすっきりしました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • gccのオプション

    今晩は、Cの初心者です。 gccをコンパイラでつかっていますが、このgccをコマンドプロンプトから実行する場合にgccのオプションを見たいのですが、 どのようにコマンドを打つとオプションが見れるのでしょうか。

  • リモートデバッグについて

    リモートデバッグについて質問があります。 現在、Red Hat Linux 9.0にて、C言語のプログラミングをしています。 いま作っているプログラムは、CUIの簡単なものです。 環境は以下のとおりです。  エディタ :vi  コンパイラ:gcc  デバッガ :gdb ですが、viに慣れていないのとgdbだとデバッグは全てコマンドになるので、 効率が上がらないです。(スキルも無いのですが。) そこでWindowsXPのマシンで、samba共有のソースをエディタで 編集してみると便利でした(パソコンは2台あります) ただ、コンパイルとデバッグはLinux上になってしまうので、そこから先は同じです。。。 WindowsマシンでLinuxに入っているgdbのフロントエンドみたいなことできないでしょうか? (コンパイル・実行は、Linux上で行われるけど、デバッグは、Windowsから行える) 何か、いい環境はありませんでしょうか? また可能であれば、手順等をお教えいただけますか? ※ちなみにLinuxマシンは、中古の5000円で購入したボロの為、Xウインドウを入れていないです。  なので、GUIの統合環境をLinuxマシンで使用するというのは無しでお願いします。  また、windowsマシンにcygwinを入れるというのもLinuxマシンが可哀想なので、  今回は無しでお願いします。 下記のアドレスにあるソフトを使うと私のしたいことが出来るような気がするのですが、 英語のページなので、細かいところがわかりません。。。 BVRDE http://bvrde.sourceforge.net/index.htm

  • windowsのコンパイラーで正しく実行されたのに、gccのコンパイラーでエラーがでた

    windowsのコンパイラーで正しく実行されたのに、gccのコンパイラーでエラーがでたソースコードです。ファィル名test.c です。Linux(Red Hat9) gccです。windowsのコンパイラーはCPad for Borland C++Compilerです。 #include <stdio.h> void main() //intからvoidに変更した { int i, j; for (i=1; i<=9; i++){ printf("%2d ",i); //%2dで、iが2桁に表示 } printf("\n"); printf("***************************\n"); //この罫線もどきの書き方はダサいので工夫してください for (i = 1; i<=9; i++){ for (j = 1; j<= 9; j++) { printf("%2d ", i*j); if (j == 9) printf("\n"); //1行表示後改行 } } return; //voidにしたので0を取った! } これがLinux(RedHat9)gccでは以下のエラーが出ます。 (test.c: 関数 `main' 内: test.c:4: 警告: `main' の戻り値の型が `int' ではありません)  なぜ、同じソースコードでエラーが起こるのですか?  Linux gccでは、この場合`int' 以外の何が必要なのでしょうか? 以上よろしくお願いします。

  • AIX gcc コンパイルエラーにつきまして

    お世話になります。 Severもcもまったくわからない初心者なのですが質問させていただきます。 Make.plを実行してsoファイルを書き換えたいのですが、実行すると下記のようなエラーが出て最後までMakeが実行できません。 <ccを指定してコンパイル> 1506-507 (W) 使用できるライセンスはありません。プログラム提供者に連絡して、追加ユーザーを追加してください。 すぐにコンパイルが行われます。 <gccを指定してコンパイル> installation problem, cannot exec `cc1plus' Makeを実行したいのですがどうしたらよいでしょうか。 gccでコンパイル、他のコンパイラでの対応方法などありましたらご教授頂けると幸いです。 (ccの場合ライセンス自体が切れているっぽいのでできれば避けたいと考えています) 漠然とした質問で申し訳ないのですがよろしくお願いいたします。 OS -> AIX v4.3 cc -> CforAIX v.6 gcc -> powerpc-ibm-aix4.3.2.0 v 2.95.3

  • UTL_FILEエラー?

    Oracle10g(リンクをはっています) Winxp http://oshiete1.goo.ne.jp/kotaeru.php3?q=995849 を参考にして以下のようなプロシージャを作成しました。 CREATE OR REPLACE PROCEDURE test.Test_Convrt IS BEGIN DECLARE c1 number; c2 number; data1 varchar2(100) := null; data2 varchar2(100) := null; File_Handle UTL_FILE.FILE_TYPE; Read_Line VARCHAR2(1023); BEGIN File_Handle := utl_file.fopen('C:\temp', 'test.csv', 'r'); LOOP BEGIN UTL_FILE.GET_LINE(File_Handle, Read_line); -- カンマ位置 c1 := instr(Read_line,',',1,1); c2 := instr(Read_line,',',1,2); -- 列データ data1 := ltrim(substr(Read_line,1 ,c1-1)); data2 := ltrim(substr(Read_line,c1+1,c2-c1-1)); -- update update test.tbl1 set col1= data2 where col1= data1; commit; exception when no_data_found then exit; END; END LOOP; UTL_FILE.FCLOSE(File_Handle); END; END ; コンパイルは通るのですが、いざ実行しようとすると、 行1でエラーが発生しました。 : ORA-29280:invalid directory path ORA-06512 at "SYS.UTL_FILE", line 33 ORA-06512 at "SYS.UTL_FILE", line 436 ORA-06512 at "test.TEST_CONVRT", line 11 ORA-06512 at line 1 と表示されました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1338675 も見てみたのですが、初心者なので、いまひとつ理解できません。 SYS.UTL_FILEを参照できていないということはなんとなく、わかりました。 どのようにすれば解決できるでしょうか? また、開発初心者なので、参考になるサイトが知りたいです。 どなたか、よろしくお願いします。

  • GCCでライブラリが足りない

    はじめまして。 LindowsOS4.0を使っています。 コンパイルができずに困っています。 GCCとMAKEをインストールしました(Lindowsはどちらも入っていないのです。Debian/Woodyベースと言われています)。 gcc 2.95.4 make 3.79.1 which gcc とすると、/usr/bin/gcc と表示されます。 で、./configure すると、 ..... checking whether the C compiler works ... no と表示されコンパイルエラーになります。 configure.log を見ると、 ------------------- checking for gcc configure:916: checking whether the C compiler (gcc ) works configure:932: gcc -o conftest conftest.c 1>&5 /usr/bin/ld: cannot open crt1.o: No such file or directory collect2: ld returned 1 exit status configure: failed program was: #line 927 "configure" #include "confdefs.h" main(){return(0);} --------------------- とか --------------------- checking for gcc configure:905: checking whether the C compiler (gcc ) works configure:921: gcc -o conftest conftest.c 1>&5 /usr/bin/ld: cannot open crt1.o: No such file or directory collect2: ld returned 1 exit status configure: failed program was: #line 916 "configure" #include "confdefs.h" main(){return(0);} ---------------------- とかなっています。 confdefs.hというのは何かのライブラリなのでしょうか?これが無いとconfigureできないのでしょうか?? よろしくお願いいたします。

  • Sublime Text2でエンコード表示

    いつもお世話になっております。 Windows XPにてSublimeText2を利用しています。 ファイルがUTF-8とShift-JISでかかれたものが混在しており SublimeText2で編集中のそのファイルがどちらの文字コードなのかを知りたいと思うのですが 秀丸エディタみたいに右下にエンコードが分かる表示設定などはありますか? よろしくお願いいたします。

  • gccとvisual studio2010について

    こんにちは。 C言語の開発環境について質問なのですが、 今まで、visual studio 2010 C++でプログラムの練習をしていたのですが、gccでプログラムを書いたほうが良いということを以前お聞きしたので、gccのMinGWをインストールしてテキストエディターにプログラムを記述しました。 実際に実行したのですが、その際、Visual Stuido のファイルが勝手に開き、書いたプログラムがそこに記述されるようになっただけなのですが、これは正常な動きなのでしょうか? もし、正常であるならば、この後どのようなことをすればよろしいのでしょうか? 正常でない場合であれば、どのように対策をすればよろしいですか?

  • charset=UTF-8なのにShift-JISになっちゃいます!

    <META http-equiv=content-type content="text/html; charset=UTF-8"> と記述して、ブラウザ(IE6)で確認したのですが真っ白な画面になり、ブラウザのエンコードを確認した ところShift-JISになっていました。自動選択にしてもShift-JISになってしまいます。 UTF-8でどうしてもウェブを作りたいのですがエンコードがShift-JISにならない方法を教えていただけないでしょうか? 使っているエディタは秀丸です。

    • ベストアンサー
    • PHP
  • デバッグエラー

    今晩和 VC++2005を使ってプログラムを開発しているのですが、デバッグ時に以下のエラーボックスが表示されます Debug Assertion Failed! Program: ... File: mbstowcs.c Line: 69 Expression: s!=NULL For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts. コンパイルまでは問題なく出来るのですが・・・・ 原因不明でかなりまいっています 御教授お願いします 環境 WindowsXP SP3 Visual Studio 2005 アカデミー サンプルプログラム:http://chihara.naist.jp/people/STAFF/imura/products/labeling内のwindows用サンプル一式

このQ&Aのポイント
  • EP-M570Tプリンターのヘッドクリーニング後、再度電源を入れても入らない問題が発生
  • コードを抜いて再度試したが解決せず、問題の原因が不明
  • EPSON社製品の電源トラブルに関する技術的なサポートを求めている
回答を見る