[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(toppers-users 3209) Re: GCCでリンクエラー (hardware_init_hook、software_init_hook)
- To: users at toppers jp
- From: choronos <asuka choronos at gmail com>
- Date: Fri, 04 Jun 2010 15:47:26 +0900
あすかと申します。
> 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){}で逃げていますが、聞くは一時の恥。
>
> よろしくお願いします。
>
> 追伸
>
> 以上