[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(toppers-users 3209) Re: GCCでリンクエラー (hardware_init_hook、software_init_hook)



あすかと申します。

> Linkのオプションの秘密か

ご推測のとおり、リンク設定で行っているはずです。
厳密には、リンカスクリプトファイルに

PROVIDE(_hardware_init_hook = 0);
PROVIDE(_software_init_hook = 0);
#アンダースコアは環境依存なので適宜置き換えが必要です

と記述すると、undefinedであればNULL(=0)にリンカが
割付けを行うようになっています。
定義がある場合は、そちらの実アドレスでリンクされます。

GNU環境のJSP、ASPに入っている*.ldファイルを
ご参照いただければ実際の記載が見つかると思います。

以上、よろしくお願いします。


(2010/06/04 15:37), koizumi yoshiyuki wrote:
>   こいさんです
> 
>   今更聞けない問題に遭遇しています。少々恥ずかしいですが、どなたかお教え願えませんでしょうか?
> 
>   GCCを使っていますが、makeでbuildはしていません、とあるIDEを使っています。そこではLinkでエラーが出ます。
> 
> undefined reference to `software_init_hook'
> undefined reference to `hardware_init_hook'
> 
> start.Sではsoftware_init_hook、hardware_init_hook'がNULLなら呼び出さないようにしています。ソースコードをgrepしましたが、software_init_hook、hardware_init_hook'は見つかりません。私の認識ではundefinedで正しいと思うのですが、TOPPERSのBuildではなぜ2つの関数名はundefinedではなくNULLとなるのでしょうか。Linkのオプションの秘密か、makeにがありそうです。
> 
>   とりあえずは、voif software_init_hook(void){}で逃げていますが、聞くは一時の恥。
> 
>   よろしくお願いします。
> 
>   追伸
> 
> 以上