__gxx_personality_v0

Linux上でgccで色々と実験していたときのメモ.

C++ソースコードコンパイルしてできたオブジェクトを,gccによってリンクするとC++の正しいライブラリがリンクされないため,__gxx_personality_v0が見つからずリンクエラーが出る.
実行ファイルを作る場合はリンク時にわかるが,共有ライブラリの場合は読み込まれるまでわからない.しかし,__gxx_personality_v0を含むライブラリとリンクしている実行ファイルから共有ライブラリが読み込まれた場合,その実行尾ファイル内の__gxx_personality_v0を使うことになり問題がないように見える.__gxx_personality_v0を含まない実行ファイルから読み込まれて初めて問題に気づく.

ずいぶん前も,こういうので悩んだ気が…….