Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

コンパイルワーニングに関する質問

下記、標記のワーニングがビルド時に発生しています。

C5961 (I) Use of a type with no linkage to declare a variable with linkage

C5161 (W) Unrecognized #pragma

ビルドを試みているプロジェクトは過去にリリースをおこなったものですが、その際はこのようなワーニングはございませんでした。

変化点としましては、開発環境をセットアップしたパソコンが変更になった為、再度インストールしなおしております。

経験のございます方、回避方法等ご教示いただけないでしょうか。

  • わわいです
    そのワーニングの該当行はどういう記述になってるんでしょうか?
    それがわからないと答えようがないです
  • In reply to わわい:

    #pragma pack
    このように記載しています。
  • In reply to YY:

    わわいさん
    ご返信ありがとうございます。

    C5961 (I) Use of a type with no linkage to declare a variable with linkage

    下記記述の} u0mr_addr, u1mr_addr, u2mr_addr;行に関連してメッセージが出ております。
    この記述はルネサスより公開されている、『sfr_r82d.h』に記事述されているコードと成ります。

    union{
    struct{
    char smd0:1; /* Serial I/O mode select bit */
    char smd1:1; /* Serial I/O mode select bit */
    char smd2:1; /* Serial I/O mode select bit */
    char ckdir:1; /* Internal/external clock select bit */
    char stps:1; /* Stop bit length select bit */
    char pry:1; /* Odd/even parity select bit */
    char prye:1; /* Parity enable bit */
    char b7:1;
    } bit;
    char byte;
    } u0mr_addr, u1mr_addr, u2mr_addr;
  • In reply to YY:

    わわいです
    >#pragma pack
    というのは、変数のアライメントサイズをデフォルトにする、というものですが、すでにデフォルト状態のときにこれを指定したため、
    >C5161 (W) Unrecognized #pragma
    のワーニングが出ているのでしょう。
    これを出さないようにするには、該当の行を削除することですね

    >C5961 (I) Use of a type with no linkage to declare a variable with linkage
    こっちの方はちとそんだけではちょとわかりませんねー

    まあ、あくまでもワーニングですんで、気にしないで放置しておくってのもテだとも思いますが
  • In reply to わわい:

    ありがとうございました。
  • In reply to YY:

    > #pragma pack

    M16Cシリーズ,R8Cファミリ用C/C++コンパイラパッケージ V. 6 . 0 0 のコンパイラでは以上の pragma はサポートされない指示であり、かつ、コンパイラに `-WUP' オプションが指定されていないと

    > C5161 (W) Unrecognized #pragma

    の警告は出力されないため、

    > ビルドを試みているプロジェクトは過去にリリースをおこなったものですが、その際はこのようなワーニングはございませんでした。

    という話は疑わしいです。
  • In reply to fujita nozomu:

    ご対応ありがとうございます。
    以前から出ていたのではと言う事になりますでしょうか。
  • In reply to YY:

    ・以前から出ていた
    ・プロジェクトの設定を変更した

    どちらの可能性も考えられます。

  • In reply to YY:

    YYさん、こんにちは。NoMaYと申します。

    ルネサスさんの製品ページに以下の2種類のHEW同梱コンパイラパッケージが残っていることから気になったのですが、ここでコンパイラの挙動が大幅に変更された可能性があるのではないかという気もします。(それ故、旧バージョンと新バージョンの2種類を残さざるを得なくなったのではないだろうか、という気がするのです。) インストールし直したコンパイラのバージョンと以前に使用されていたコンパイラのバージョンが同じかどうか確認されてみてはどうでしょうか? (それで、すみません、コンパイラのドキュメントを見て、今回の違いがありそうだ、というところまで確認した訳ではないです。その可能性があるかも知れない、と気になりましたので、、、というところです、、、)

    R8C, M16Cファミリ用C/C++コンパイラパッケージ ダウンロードページ
    www.renesas.com/.../compiler-package-for-r8c-and-m16c-families.html#downloads
    【無償評価版】M16Cシリーズ, R8Cファミリ用C/C++コンパイラパッケージ M3T-NC30WA V.6.00 Release 00
    【無償評価版】M16Cシリーズ, R8Cファミリ用Cコンパイラパッケージ M3T-NC30WA V.5.45 Release 01

  • In reply to NoMaY:

    V.5.45 で `-WUP' を指定して #pragma pack を含むソースをコンパイルすると

    C:\hoge\hoge.c(1) : [Warning(ccom)] unknown pragma PACK used
    

    という書式で警告が出ます。

    V.6.00 では

    C:\piyo\piyo.c(1) :  C1546 (W) unknown pragma PACK used
    

    なので僅かに書式は異なります。

    V.5.45 以前のものではどうなるかは不明です。

  • In reply to YY:

    #pragma pack
    

    は GCC では有効なプラグマ指令です。

    また、ちょっとぐぐると HEW は R8C 等で使用できる GCC の実装である GNU M16C と組み合わせて使うことができたようです。

    なので、その組み合わせで開発されたソフトであるとか、開発初期に GNU M16C を使用していた可能性は考えられます。

  • In reply to fujita nozomu:

    fujitaさん、こんにちは。NoMaYです。どうもフォロー有難う御座います。

    すみません、気になったのですが、V.6.00にしても、YYさんの投稿にあった警告メッセージとは違うのですね。(そもそも番号が違っていますね。)

    YYさんの投稿:
    C5161 (W) Unrecognized #pragma

    V.6.00:
    C1546 (W) unknown pragma PACK used

    何か気になります、、、

    [追記]

    YYさんは#pragma packと仰ったのですが、実は、その付近に別の#pragma ○○○ □□□のような記述があって、例えば、○○○は正しいけれども□□□が間違っている、ということで C5161 の警告が出ていたりしないだろうか、という気もして来たのですが、、、

  • In reply to NoMaY:

    YYさん、こんにちは。NoMaYです。

    パソコンの中を漁っていたら、大昔にKPIT GNUM16CでR8Cを味見しようとしたのであろうと思われるプロジェクトが出てきたのですが、その.hwpファイルを見ると以下のような情報が入っていました。ここを見れば、当時どのコンパイラを使っていたのか(ルネサスコンパイラ or KPIT GNUコンパイラ、とか、そのバージョン、とか)分かりそうです。

    [HIMDBVersion]
    2.0
    [DATABASE_VERSION]
    "2.8"
    [PROJECT_DETAILS]
    "R8C" "C:\Work\R8C\R8C" "C:\Work\R8C\R8C\R8C.hwp" "M16C" "KPIT GNUM16CM32C [ELF]" "C Application" "R8C/Tiny" "R8C/29"
    [INFORMATION]
    "プロジェクト情報がありません"
    [TOOL_CHAIN]
    "KPIT GNUM16C [ELF] Toolchain" "v11.01"
    。。。以下省略。。。


    ちなみに、C:\Work\R8Cというフォルダは無く、ディスクの別の場所にバックアップがあった、という次第です。

  • In reply to NoMaY:

    皆様、いろいろとありがとうございます。

    .hwpファイルを確認しました。
    [TOOL_CHAIN]
    "Renesas M16C Standard Toolchain" "6.00.00"
    上記のように記載があり、当時と現在は、同じコンパイラである事が確認できました。
    当時から、発生していた事が濃厚と成ってまいりました。

    ご存知であれば、以下2点ご教示ください。
     1、デフォルトの構造体パッキングの確認方法をご教示ください
     2、#pragma pack 1の状態で使用したと考えておりますが、ワーニングを出さずに設定する方法をご教示ください

    よろしくお願いいたします。
  • In reply to YY:

    わわいです
    > 1、デフォルトの構造体パッキングの確認方法をご教示ください
    お使いのコンパイラ(ツールチェイン)のマニュアルに書いてあります
    > 2、#pragma pack 1の状態で使用したと考えておりますが、ワーニングを出さずに設定する方法をご教示ください
    (I)のメッセージはインフォメーションメッセージですんで、これが出なくなるように、と言うのはあきらめたほうがよろしいかと思われます。
    (W)のワーニングに関しては、でなくする方法はメッセージごとに変わってきますんで、ここで聞いていただければ教えますです

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page