• ベストアンサー

C/C++の文法チェックツール

現在C++であるソフトを作成中なのですが、コンパイルに非常に時間がかかるため単純な文法ミスでも長いコンパイル時間を経てエラーが検出され、その単純な文法ミスのためにまた長いコンパイルをし直すという非効率な状況です。 質問ですが、コンパイルする前に簡易的にC++の文法チェックを行いたいのですが、何か良いツール、一般的に使われているツールなどを紹介いただきませんでしょうか? OSはWindowsXPです。 よろしくお願いいたします。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

おそらく、コーディングを行っている担当者が、C++の文法を正しく理解していないのではないでしょうか? 文法を正しく理解していれば、そうそう文法ミスでエラーになることはありません。もちろん、人間のやることですからときどきケアレスミスは発生しますが、我慢できないほど非効率になることはないはずです。 ところで、C++のコンパイルで一番時間がかかるのはテンプレートです。しかし、テンプレートの場合には、文法チェックを行うだけでもかなりの時間がかかります(意味は無視で、純粋な構文チェックだけならそうでもないでしょうが...)。 テンプレートを除けば、おそらく一番時間がかかるのはリンクですので、エラーが発生したファイルだけをコンパイルしなおすのも一つの手です。 また、ソース間の依存関係をなるべく少なくする工夫も必要でしょう。

jimihenn
質問者

お礼

ありがとうございます。 まさにテンプレートを使用しております。 おそらく時間がかかるのはこれが原因だったわけですね。

その他の回答 (3)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.3

ファイルやモジュールのサイズやが大きくなっていませんか? makeを使って分割コンパイルしようとしてもファイルサイズが 大きいと意味がなくなります。 ファイルが大きいようであるなら、適度な大きさにファイルを 分割して下さい。 #モジュール単位で分割コンパイル及びモジュールテストを行い #最後に結合するという方法も有ります。 単純ミスを1つ見付けたなら、同様なミスをしていないか探す 事も重要な事です。(デバッグ時も同様) 頻繁に同様なミスが見付かる様であればソースリスト(新規 作成・修正部分)を最初から見直した方が却って効率が良く なるかも? #文法チェック等をツールまかせにしているとコーディング #能力も上がりません。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★オプションを確認しましょう。 >コンパイルする前に簡易的にC++の文法チェックを行いたいのですが  ↑  文法チェックだけを行えるオプションがありませんか?  どのコンパイラ(処理系)を使っているか分かりませんが、  コンパイラのオプションで文法チェックだけを行える場合は  それを指定してやります。これが一般的なツールです。  マニュアルなどでオプションを確認して下さい。

jimihenn
質問者

お礼

ありがとうございます。 オプションも調べてみます。

回答No.1

コンパイルに非常に時間がかかる、というのが問題だと思うのですが、 makeとかbuildとか、前回コンパイル時との差分だけをコンパイルするということは行っているのでしょうか? また、 Eclipse CDT http://monoist.atmarkit.co.jp/fembedded/articles/eclipseccplusplus/02/eclipseccplusplus02a.html とか、 Visual C++ (の express edition) http://www.microsoft.com/japan/msdn/vstudio/express/ とか を試してみるのはどうでしょう?

jimihenn
質問者

お礼

ありがとうございます。 一応差分だけをコンパイルするようにしてます。

関連するQ&A

  • SSDのチェック&修復ツール

    VAIO_S(VPCSB1AFJ,Win7)のImageBackUpを採集すると、途中でループする(先に進まない)。バンドルされているインテルのSSD用ツール(ラピッド・ストレージ・テクノロジー)では、異常は検出されない。windows標準のツールであるエラーチェック(chkdsk)以外に、「SSDの全面リードチェック」を行うツールがありましたら、ご教授ください。CHKDSKを実行させた時、ベラ某な数のエラーが検出され、1時間以上の時間を要した。 ※OKWaveより補足:「ソニー製品」についての質問です。

  • 簡単にHTMLの文法チェックとリンク切れのチェックが出来るツールはありませんか?

    事情があり、Webのプロではない人がWebを作ることになり、簡単なチェックが出来るツールを2種類探しています。 ツールの条件 ・インストールおよび操作がとても簡単なこと ・無料であること ●ごく初歩的なHTMLの文法エラーを見つけるツール 見つけたい内容例 ・<body>タグの抜け ・プロパティーの設定で「=」や「" "」が抜けている ・閉じタグがないものを見つける(<a>タグや<li>タグなど) ●リンク切れを見つけるツール なにか情報をご存知でしたら、ぜひ教えてください!

  • VC++のソースコードをチェックするツール

    VC++でプログラミングしているのですが、開発効率を あげるために、ソースコードのチェックツールがあれば それを使おうかと思っています。 具体的には、不定値参照や未使用変数などを検出したいです。 このようなツールはありますでしょうか? よろしくお願い足します。

  • メモリチェックツールでは大丈夫

    バッファローのDD400-256をNECPC-MY25XRZにつけたのですが、突然リブートする現象があり、NECに見てもらったらメモリがエラーになるといわれたのですが、メモリチェックツールで調べると大丈夫なんです。 RAMCHEK、R.S.T、W.S.T(48時間テストでもエラーはなし)でチェックはエラーにはならない。 メモリチップはSamsungとHymixです。OSはXPPROです。NECのツールでは単体テストは大丈夫なんですが何が悪いんでしょうか?

  • Cドライブのエラーチェック完了しない

    WindowsXPです。 Cドライブのプロパティ → ツール → エラーチェック でエラーチェックが完了しません。 現在PC使用上特に問題は生じていませんが このままほっておいて大丈夫でしょうか? 何か対策を講じる必要があるか教えてください カテゴリもあっていないかも知れませんがよろしく ご教授下さい。

  • OpenOffice Writer のスペルと文法チェック

    OpenOffice Writer のスペルと文法チェック Scientific Linux 5.4 に OpenOffice.org 3.2.0 をインストールしました。 そこで Writer の ツール - スペルと文法チェック を使ってみようと思ったのですが うまく機能してくれません。 「スペルと文法チェック」をクリックすると、小さいウィンドウが開き 「ドキュメントの先頭からチェックを続行しますか。」と聞かれ、 「はい (Y)」と答えるのですが、 明らかにおかしな単語(無意味なアルファベットの羅列)があるのに なんの処置も行わずに 「スペルチェックが完了しました。」と表示されてしまいます。 辞書が機能していないのかと思って ツール - オプション - 言語設定 - 文書作成支援 の言語モジュールやユーザー辞書を見てみましたが、どれもチェックは付いています (インストールしたときのままで、弄っていません)。 なにをすれば、正しくスペルと文法チェックを機能させられるでしょうか。 お教えください。

  • 「.c」拡張子でC++文法を使用したソースのコンパイルについて

    すみません、C&C++初心者です。 よく分からないので教えて下さい。 「.c」拡張子のファイルなのですが、以下C++の文法が使用されたソースがあります。 ・変数宣言が関数内の処理途中でされている ・構造体の変数宣言で「struct」の記述が省略されている ・const変数がswitch分のcaseラベルに使用されている これを以下環境でコンパイルしたところ、エラーとならず正常終了しました。 OS:HP-UX コンパイラ:aCC です。 (ちなみにwindows環境(win2003sv、clコンパイラ)でコンパイルしたところ、想定通りC++文法箇所でエラーになりました) 自分なりに調べた限り、C++対応コンパイラというものは、拡張子によって 「.c」ならC言語、「.cc」「.cpp」ならC++、といった判断をしてコンパイルする、 といった記述がよく見受けられました。 しかし本件の場合、「.c」ですがC++の文法が許容されたということになります。 本サイトでも検索したところ、「C言語での変数宣言の場所」というご質問で 「新しいgccコンパイラでは、変数の途中処理宣言は許容されている」 という内容のものは確認できましたが、これに似たような現象なのでしょうか。 ご存じの方おりましたらご教授よろしくお願いいたします。

  • ドライバが最新かどうかチェックできるツール

    こんにちは。 質問があり投稿致します。 今回HDDのクリーンインストールを行いました。 その為、ドライバを新しくしたいと考えております。 ただ、何が古くて何が新しいのか不明です。 PC内部のそれぞれのドライバが最新になっているかどうかをチェックするツールを探しております。 何かお勧めのツールをご存知でしたら教えて頂けますと幸いです。 どうぞ宜しくお願い致します。 OS:WindowsXP HomeEdition sp2

  • メモリエラーチェックについて

    メモリチェックのソフトで、mentestx86、OSのメモリ診断ツール、memscopeの3つを使用しているのですが、チェックの際に、memtestx86、メモリ診断ツールで"問題なし"と表示されたものの、memscopeでエラーが検出された場合、不良品または故障と考えてよろしいのでしょうか?

  • C言語からC#への変換ツール

    現在C言語にて構築したプログラムをネットワーク上でも実行できるようにするため、ASP.NETを利用しようと思っています。 そのために、ASP.NETで利用できるC#に変換できるツールがあるか探しています。 C言語からC#へ変換するソフトウェアというものはありますか? OSはWindowsXPです。 回答よろしくお願いします。

専門家に質問してみよう