• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユニックス上のソースがウィンだとコンパイルできません)

ユニックス上のソースがウィンだとコンパイルできません

このQ&Aのポイント
  • ユニックス上のソースファイルをウィンドウズ上でコンパイルする際にエラーが発生します。
  • 特定のソースファイルからのエラーメッセージを取得できません。
  • 二つのソースファイルを結合して実行ファイルを作成する方法について教えてください。

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.1

エラーは2種類。 1つめが完全なエラーとして処理されて、実行ファイルが作られていないようです。 perser2.cppにあるmain関数の返り値をintにして、最後に return 0; でも入れてください。 C言語の仕様としては、こちらのほうが正式です。 警告だけで流してくれるコンパイラも多いですが。 2つめはただの警告(Warning)。 残しておくと妙なバグの原因になったりするので、できるだけ消しておいたほうがいいです。 lex.cppのgetConstant()にある、 double v; を int v; ぐらいに変えてみてください。 何でここにわざわざdoubleを使ってるか謎ですけど・・・ コンパイルオプションに-Wallを追加しておくと、もっと細かい警告(1回も使わない変数を宣言してるとか)も出してくれます。 無視しても平気な警告が多いですが、潰せるものは潰しておいたほうがいいです。 コンパイラの出すエラーなんて簡単な英語が多いですから、読む癖をつけておいたほうがいいですよ。 良く出てくるエラーの種類なんてたかが知れています。

tyouji
質問者

お礼

一つ目と二つ目を両方修正するとまたいろいろとエラーが出て実行ファイルは作成されませんでしたが、一つ目の完全なエラーの方だけを教えていただいた通り修正した場合、 lex.cpp: In member function `TToken* TLex::getConstant()': lex.cpp:60: warning: passing `double' for argument 2 of ` TToken::TToken(TTokenID, int, double, int, char*, int)' の警告は出ましたが、実行ファイルは作成され意図した動作をしました。ありがとうございます。

関連するQ&A