Renesas Synergy™

FAQ 104108 : リンク時に「L2310 (E) Undefined external symbol "xxxx" referenced in "yyyy"」が出力されます。

Q: 質問

リンク時に「L2310 (E) Undefined external symbol "xxxx" referenced in "yyyy"」が出力されます。


A: 回答 

本メッセージは、ファイル名 yyyyにて extern宣言して参照している 外部シンボル xxxxが、どこにも定義されていないことを示しています。下の内容をご確認ください。

  1. シンボル名 xxxxが、C標準ライブラリ関数名や実行時ルーチン名の場合
    (お客様が使用しているシンボル名ではない場合)

    C標準ライブラリをリンクしていないことが原因と考えます。
    High-performace Embedded Workshopをご使用の場合、次の手順で設定を確認 してください(SHC V6以降、H8CV4以降を対象とした手順です)。
    1. HEWメニュー[ビルド]->[Standard Toolchains]を選択
    2. 「標準ライブラリ」タブを選択し、カテゴリで「モード」を選択
    3. モード設定が「ライブラリファイル指定なし」になっている場合、  「ライブラリファイル作成(オプション変更時)」に変更してください。
      ※ ワークスペース作成時に、"Assembly Application"、"EmptyApplication"を選択された場合、デフォルトは「ライブラリファイル指定なし」になっています。
    4. 次にカテゴリで「標準ライブラリ」を選択
    5. ご使用のライブラリ関数のグループがチェックされているか、ご確認ください。

  2. シンボル名 xxxxが、お客様が使用しているシンボル名の場合

     ファイル名 yyyyで参照しているシンボル xxxxが定義されていません。
     シンボル xxxxを定義してください。または、シンボル定義箇所にタイプミス等 がないかご確認ください。

 

 

適用製品

SuperHファミリ用C/C++コンパイラパッケージ
H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください