2018年2月16日金曜日

メモ:undefined reference to `operator new(unsigned int)'

 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 件のコメント:

コメントを投稿