マングリングに気付かない
オープンソースのゲームのソースコードを色々いじってたら
CとC++を混在させる羽目になりまして。
楽勝のつもりでコード書くとリンク通らない。
外部参照 _XXX()が見つかりません。
って出るんでC++の部分でヘッダでも間違えたー。すわっ、
と慌てて調べたら
マングリングが起きてたみたいです。
C++がコンパイル後の名前をフリーダムに変えすぎてCさんが関数を見つけられないみたい。
extern "C" int XXX(void);
CppのヘッダにC仕様のexternを追加するだけで万事解決。
なんとまぁ。これだけで1時間ぐらいあーだこーだしてたとおもうと頭が痛いです。
make,link,コンパイルにつよくなりたーい。