Renesas Synergy™

FAQ 3000146 : (e² studio)RZ用プロジェクトをGNU ARM Embedded用に変換したらビルドエラーになる

Q: 質問

GNUARM-NONE-EABIツールチェーン用のプロジェクトをGNU ARM Embedded用に変換したが、ビルドに失敗する。

次のような問題を解決するにはどうしたら良いでしょう?

  • セクション名の未定義エラー
    プロジェクト変換時にリンカースクリプトがないとの警告が表示され、それをビルドすると
    リンク時に 「undefined reference to 'セクション名'」のようなエラーがでてしまう。
  • #define定義されている値がアセンブラでエラー(undefined reference to 'シンボル名')になってしまう。

 


A: 回答

それぞれ以下のような対策で解決される場合があります。

[セクション名の未定義エラーが指摘される]
インポート時にリンカースクリプトを取り込まないと未定義エラーが出力されることがあります。
ビルド時にリンカースクリプトが出力されるGNUARM-NONE-EABI用プロジェクトでは、元のプロジェクトで一度ビルドを行ってから再度変換を行うとリンカースクリプトがインポートされ未定義エラーが解決されます。

[アセンブラで#define定義値がエラーになる]
#defineなどプリプロセッサの表記がある場合はアセンブラのプリプロセッサ機能を有効にしなければなりません。
プロジェクトプロパティの「Tool Settings」タブ内にある「Cross ARM GNU Assembler」→「Preprocessor」の「Use preprocessor」をチェックしてください。


GNUARM_asm_preprocess_jp.png

適用製品

e² studio
他にご質問がございましたら、リクエストを送信してください