@@LCODEとコンパイルエラーについて

現象

    トランジスタ技術2008年8月号の143ページに書かれた手順で、サンプルプログラム(sample1)をコンパイルしようとすると、エラーが出ます。申し訳ございません。

    追実験をしてみたところ、
    RA78K0 error E3210: Segment '@@LCODE' is not exist - ignored
    というエラーが出て、確かにリンクができませんでした。

    78kerr1

    141ページの右下の部分でTR0808\Commonというフォルダから5個のファイルをコピーするように書かれていますが、Commonフォルダに含まれているRAMAPP.drを使うとエラーとなってしまいます。

対策方法

    このエラーに対処するには、RAMAPP.drを開いて、
    MERGE @@LCODE : = IXRAM
    と書かれた行の先頭に#(シャープ)をつけて、コメントアウトしてください。
    #MERGE @@LCODE : = IXRAM

    78kerr2

    もしくは、TR0808\sample1フォルダの中にあるRAMAPP.drをコピーするようにしてください。
    Commonフォルダのはライブラリの使用を前提としたリンカディレクティブファイルなので、LCODEセクション(ライブラリコード)がプログラム中に出現しません。そのため、sample1のようなライブラリを使わないファイルに使おうとすると、必要のないセクションをリンクしようとしてエラーになってしまいます。

    記事では、commonフォルダからコピーしてくださいとなっておりますが、これは誤りで、正しくはsample1フォルダからのコピーでした。

    ライブラリを使う大きなプログラムと使わないプログラムの違いについては説明が難しいので、150ページ〜151ページのAppendixにまとめておきました。詳しくはAppendixをご覧下さい。

    謹んでお詫び申し上げます。

chickens_back.gif 戻る

 Copyright(C) 2008 NAITOU Ryuji. All rights reserved. 無断転載を禁ず