« VS 2005 は Symbian OS の SDK とは使用出来ないらしい | トップページ | VS2005 EE を VC++ ToolKit 2003 と Platform SDK 2003 で使う »

2005年11月15日 (火曜日)

unresolved external symbol __chkstk

ビルド時にタイトルのようなリンクエラーが出た場合、原因は、エラー発生元の関数で規定サイズ以上のスタックを使用している事である。

…なので、この問題への正しい対処は、シンボル __chkstk を含むオブジェクト/ライブラリを探す事ではなく、該当関数でのスタック使用量を(自動変数を減らしたり、ヒープからメモリを確保するなどして)減らすか、その関数の呼び出し元スレッドのスタックサイズを増やしてあげることである。

ここで疑問なのは、リンカは、ソースコード内でスレッド生成時に引数として渡すスタックサイズを知り得るのか…?また、ライブラリのビルド時に本エラーが発生した場合はどう対処するのか(どのスレッドから関数が呼び出されるか不明なので)…?

…と、いう事で悩み中…。
恐らく、デフォルトのスタックサイズ 8K バイトが適用されている気はするが、それを変える事は出来ないのか…?

|

« VS 2005 は Symbian OS の SDK とは使用出来ないらしい | トップページ | VS2005 EE を VC++ ToolKit 2003 と Platform SDK 2003 で使う »

Symbian 開発備忘録」カテゴリの記事

コメント

もしかしたらhttp://carz.air-nifty.com/sowhat/2005/11/post_8fed.html">ここに書いた方法でいける鴨…? >椰子さん

投稿: かみと | 2005年11月18日 (金曜日) 12時35分

うちの開発環境もいまのところVS2003英語版のみ対応です。
VS2005対応は期待できないかな( ̄へ ̄|||) ウーム

投稿: 椰子 | 2005年11月15日 (火曜日) 23時50分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: unresolved external symbol __chkstk:

« VS 2005 は Symbian OS の SDK とは使用出来ないらしい | トップページ | VS2005 EE を VC++ ToolKit 2003 と Platform SDK 2003 で使う »