下記、標記のワーニングがビルド時に発生しています。
C5961 (I) Use of a type with no linkage to declare a variable with linkage
C5161 (W) Unrecognized #pragma
ビルドを試みているプロジェクトは過去にリリースをおこなったものですが、その際はこのようなワーニングはございませんでした。
変化点としましては、開発環境をセットアップしたパソコンが変更になった為、再度インストールしなおしております。
経験のございます方、回避方法等ご教示いただけないでしょうか。
#pragma pack
は GCC では有効なプラグマ指令です。
また、ちょっとぐぐると HEW は R8C 等で使用できる GCC の実装である GNU M16C と組み合わせて使うことができたようです。
なので、その組み合わせで開発されたソフトであるとか、開発初期に GNU M16C を使用していた可能性は考えられます。
fujitaさん、こんにちは。NoMaYです。どうもフォロー有難う御座います。すみません、気になったのですが、V.6.00にしても、YYさんの投稿にあった警告メッセージとは違うのですね。(そもそも番号が違っていますね。)YYさんの投稿:C5161 (W) Unrecognized #pragmaV.6.00:C1546 (W) unknown pragma PACK used何か気になります、、、[追記]YYさんは#pragma packと仰ったのですが、実は、その付近に別の#pragma ○○○ □□□のような記述があって、例えば、○○○は正しいけれども□□□が間違っている、ということで C5161 の警告が出ていたりしないだろうか、という気もして来たのですが、、、
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というフォルダは無く、ディスクの別の場所にバックアップがあった、という次第です。
> 1、デフォルトの構造体パッキングの確認方法をご教示ください> 2、#pragma pack 1の状態で使用したと考えておりますが、ワーニングを出さずに設定する方法をご教示ください
『M16Cシリーズ,R8Cファミリ用 C/C++コンパイラパッケージ V.6.00 C/C++コンパイラユーザーズマニュアル』の 156頁に「本コンパイラでは、デフォルトで構造体をパックします(以下略)」とある通り、構造体のパッキングをしたいのであれば指定は不要で構造体メンバの隙間にパディングを設けて構造体メンバのアライメントを揃えたい場合のみ `#pragma STRUCT~' の指定を行うようです。詳しくはマニュアルを参照してください。C:/Program Files (x86)/~ に HEW をインストールしていれば、マニュアルは C:/Program Files (x86)/Renesas/Hew/Tools/Renesas/nc30wa/v600r00/manual/~ にあると思います。