CS+やe2studioのコンパイル設定

タイトルが漠然としていてすいません。
マイコンはRL78を主に使用していますのでこのコーナーに投稿しました。
開発環境はCS+やe2studioを使用しています。

コンパイル時点でバグにつながる記述ミスを防ぎたいと思ってます。
何らかのワーニングを表示させるとかして気づきたいです。
例えば、近い投稿では、
 ・かふぇルネ>109: 開発ツール - Forum>変数サイズミスで、終わらないforループをワーニングにしたい
があります。
解決策として
 「gccでコンパイルする。e2studioのgccのワーニング設定に"-Wundef"する」
と書かれています。
私は初心者なので、「gcc」,「-Wundef」なんてことは思いつきません。
この辺のことを調べるにはどうしたら良いのでしょうか?
うまく言えないですが、
「"〇〇したい"ならどこの項目のどこの設定をXXしないさい」というふうに書いてあれば良いのですが・・・。
Parents
  • ega258さん、こんにちは。NoMaYです。

    ワーニングレベルの設定を変更したいと思った時は、コンパイラのユーザーズマニュアルやヘルプの”オプション”のカテゴリを調べることが基本かと思います。ですが、今は、統合開発環境のコンパイラ設定のGUIを調べることで、かなり事足りてしまうようにも思います。

    この時、”ワーニング”とか”警告”とかズバリのカテゴリ分けになっているコンパイラもあれば、オプションの全項目を片っ端から見ないとワーニングレベルを変更するものであることが分からないコンパイラもあります。ルネサスさんのコンパイラだと以下のような感じです。

    ●CC-RL

    自分が認識している範囲ですと -refs_without_declaration がこのカテゴリのものですね。(正確には、ワーニングにするかどうかでは無く、エラーにするかどうかの設定になりますけれども。) ヘルプでは、コンパイラ編→コマンドリファレンス→オプション→コンパイルオプション→機能拡張のグループ分けの下にあります。

    宣言がない関数を呼び出す場合,または古いスタイル(K&R)の宣言が書かれた関数呼び出しをエラーとします。

    [指定形式]
    -refs_without_declaration
    - 省略時解釈
      宣言がない関数を呼び出す場合,または古いスタイル(K&R)の宣言が書かれた関数を呼び出す場合にメッセージを出力しません。
    [詳細説明]
    - 宣言がない関数を呼び出す場合,または古いスタイル(K&R)の宣言が書かれた関数を呼び出す場合にエラーとします。


    ●CC-RX

    自分が認識している範囲では以前に以下のスレッドに書いたような状況ですが、その後、Amazon FreeRTOSのCC-RXへの移植を行った時に多少更に理解が深まっていて、特に続報とか投稿していませんが、自分が投稿するサンプルプログラムは少し細かい設定をしています。(カットアンドトライで、緩やか過ぎず、厳し過ぎず、の落としどころを探したものです。)

    CC-RXでWarning Levelを上げるOptionはインフォメーションメッセージ出力オプションだと知ったので試してみました
    japan.renesasrulz.com/cafe_rene/f/forum21/4434/cc-rx-warning-level-option

    ●CC-RH

    最新版のV2.02.00のヘルプを調べてみたのですが、このカテゴリのオプションは無いようでした。たぶん、緩やか過ぎず、厳し過ぎず、の落としどころに設定されているのだろうなぁ、と思います。(あるいは、実務上は、MISRA-Cルールチェックを行うのがデフォルトなので、そちらで細かい設定をするから、といったことだったりするのかも知れません。)

    あと、以下の件は、「コンパイラ ワーニングレベル」とか「コンパイラ 静的解析」とかでグーグル検索して片っ端から斜め読みしてみるのも知識を深めるには良いかなと思います。

    > 私は初心者なので、「gcc」,「-Wundef」なんてことは思いつきません。
    > この辺のことを調べるにはどうしたら良いのでしょうか?
    > うまく言えないですが、
    > 「"〇〇したい"ならどこの項目のどこの設定をXXしないさい」というふうに書いてあれば良いのですが・・・。

    ちなみに、私は、それまでずっと-Wundefの存在には気付きませんでしたね、、、、自分が新たに投稿するサンプルプログラムには付けるようにし始めました、、、

Reply
  • ega258さん、こんにちは。NoMaYです。

    ワーニングレベルの設定を変更したいと思った時は、コンパイラのユーザーズマニュアルやヘルプの”オプション”のカテゴリを調べることが基本かと思います。ですが、今は、統合開発環境のコンパイラ設定のGUIを調べることで、かなり事足りてしまうようにも思います。

    この時、”ワーニング”とか”警告”とかズバリのカテゴリ分けになっているコンパイラもあれば、オプションの全項目を片っ端から見ないとワーニングレベルを変更するものであることが分からないコンパイラもあります。ルネサスさんのコンパイラだと以下のような感じです。

    ●CC-RL

    自分が認識している範囲ですと -refs_without_declaration がこのカテゴリのものですね。(正確には、ワーニングにするかどうかでは無く、エラーにするかどうかの設定になりますけれども。) ヘルプでは、コンパイラ編→コマンドリファレンス→オプション→コンパイルオプション→機能拡張のグループ分けの下にあります。

    宣言がない関数を呼び出す場合,または古いスタイル(K&R)の宣言が書かれた関数呼び出しをエラーとします。

    [指定形式]
    -refs_without_declaration
    - 省略時解釈
      宣言がない関数を呼び出す場合,または古いスタイル(K&R)の宣言が書かれた関数を呼び出す場合にメッセージを出力しません。
    [詳細説明]
    - 宣言がない関数を呼び出す場合,または古いスタイル(K&R)の宣言が書かれた関数を呼び出す場合にエラーとします。


    ●CC-RX

    自分が認識している範囲では以前に以下のスレッドに書いたような状況ですが、その後、Amazon FreeRTOSのCC-RXへの移植を行った時に多少更に理解が深まっていて、特に続報とか投稿していませんが、自分が投稿するサンプルプログラムは少し細かい設定をしています。(カットアンドトライで、緩やか過ぎず、厳し過ぎず、の落としどころを探したものです。)

    CC-RXでWarning Levelを上げるOptionはインフォメーションメッセージ出力オプションだと知ったので試してみました
    japan.renesasrulz.com/cafe_rene/f/forum21/4434/cc-rx-warning-level-option

    ●CC-RH

    最新版のV2.02.00のヘルプを調べてみたのですが、このカテゴリのオプションは無いようでした。たぶん、緩やか過ぎず、厳し過ぎず、の落としどころに設定されているのだろうなぁ、と思います。(あるいは、実務上は、MISRA-Cルールチェックを行うのがデフォルトなので、そちらで細かい設定をするから、といったことだったりするのかも知れません。)

    あと、以下の件は、「コンパイラ ワーニングレベル」とか「コンパイラ 静的解析」とかでグーグル検索して片っ端から斜め読みしてみるのも知識を深めるには良いかなと思います。

    > 私は初心者なので、「gcc」,「-Wundef」なんてことは思いつきません。
    > この辺のことを調べるにはどうしたら良いのでしょうか?
    > うまく言えないですが、
    > 「"〇〇したい"ならどこの項目のどこの設定をXXしないさい」というふうに書いてあれば良いのですが・・・。

    ちなみに、私は、それまでずっと-Wundefの存在には気付きませんでしたね、、、、自分が新たに投稿するサンプルプログラムには付けるようにし始めました、、、

Children
No Data