ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4009854 emacsでデバックできない
質問者:soiliper linux & プログラミング初心者です。

GNU emacs 22.1.1を使いc++でのプログラミングを勉強しています。

間違ったプログラムを書いてM-x compile でコンパイルしたときに

make: *** ターゲットが指定されておらず、makefileも見つかりません。中止。

とでてデバックできません。何が原因なのでしょうか??

OSはubuntu 7.10です。
困り度:
  • すぐに回答を!
質問投稿日時:
08/05/09 20:35
この質問に対する回答は締め切られました。

回答

ANo.5 >-gの意味も教えていただけるとありがたいです。
わからん時は

man g++
回答者:koko_u_
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/11 01:44
この回答へのお礼了解です。

回答良回答20pt

ANo.4 > make: *** ターゲットが指定されておらず、makefileも見つかりません。中止。
makeとはLinuxのコマンドです。
複数のファイルから構成される大きなプログラムなどで、再コンパイルする必要がある部分を決定し、
再コンパイルのためのコマンドを実行します。

makeコマンドでは、プログラムを構成するファイル間の関係と各ファイルを更新するためのコマンドを記述したファイルが必要です。
このファイルをmakefileといいます。
参考URLは、makefileについて記述したものです。

質問の内容から以下の2つの作業を繰り返すことを想定していると考えました。
 (I)コンパイル
 (II)コンパイルエラーの修正(デバッグ)

makeコマンドは、(I)の作業に関するものです。
そしてmakefileが存在しないため、コンパイルが実行されていません。
このため、(II)の作業を行えない状態だと思います。
回答者:aid-u
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
08/05/10 10:11
参考URL: http://www.c.csce.kyushu-u.ac.jp/~seiichirou/wiki/index.php?Makefil...
この回答へのお礼丁寧な回答ありがとうございます!参考URLも大変参考になりました。
windowsでプログラミングするのとはずいぶん異なるのですね。これから地道に学習してlinuxの使い方も覚えていきたいとおもいます。
ありがとうございました。

回答

ANo.3 × デバック
○ デバッグ
デバッグ(debug)・・・de=取り除く、bug=虫(アメリカではテントウ虫のような甲虫を指す)
回答者:okazaki0ko
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:
08/05/10 00:21
この回答へのお礼ご指摘ありがとうございます!

回答良回答10pt

ANo.2 M-x compile

でデフォルトではミニバッファに make -k が貼り付くはずです。
このままエンターすると、当然同じディレクトリにある Makefile を使ってコンパイルしようとします。

該当のディレクトリに Makefile がないばあいに質問文にあるメッセージが表示されるでしょう。

M-x compile
の後で、ミニバッファに手動で g++ -g -Wall foo.c -o foo などと入力しましょう。
回答者:koko_u_
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/09 23:33
この回答へのお礼回答ありがとうございます!

-gの意味も教えていただけるとありがたいです。

回答

ANo.1 メッセージの通りでは?
>make: *** ターゲットが指定されておらず、makefileも見つかりません。中止。
Makefileは書いたのですか?もしくはcompileコマンドで現れるmakeのコマンドラインでターゲットは指定したのですか?

sample.cpp というファイルを編集したとすると、それを保存して、M-x compile さらに make sample でコンパイルできます。

>とでてデバックできません

「コンパイルできません」の誤りですね。compileはコンパイルするコマンドで、デバッグするコマンドではありません。
コンパイルとは何か、デバッグとは何かを理解しましょう。
回答者:notnot
種類:回答
どんな人:一般人
自信:自信あり
回答日時:
08/05/09 21:00
この回答へのお礼回答ありがとうございます!
windowsでしかプログラミングをしたことがなくコンパイルやデバッグの意味やmakefileのことなど考えていませんでした。