undefined reference to `operator new(unsigned int)'
undefined reference to `operator delete(void*)'
というコンパイラエラーが出る場合、makefileのLDのgccをg++にすればok。
ちょっと前にマイコンでC++を使おうと思ったことが有るんだけど、newを使おうとすると上記エラーが出て、結局newは使わずmallocを使っていた。
コンパイラはg++に変えていたけど、リンカがgccのままだった、というオチ。
これで動的メモリ確保がC++らしく書けるようになった。
コンストラクタ/デストラクタが不要ならmallocで良いんだけど、mallocは、それはそれで危険なコードなので、使わないならそれに越したことはない。
0 件のコメント:
コメントを投稿