あるはずの関数がシンボルが見つからない。名前をみると _hoge という形式なので、ははぁ?C++の関数をC でリンクしにいってるな?と、そこまではわかったのだが、手を抜いて単純に extern "C" だけを付けたのがまずかった。
*.mm *.cpp 等では、cplusplus のコードとしてコンパイルされるが、*.m など Objective-C では c と同じ扱いのようだ。そのせいで、extern "C" 自体が構文エラーになっていた。ヘッダの宣言では、ちゃんと
#ifdef __cplusplus extern "C" { #endif ... #ifdef __cplusplus }; #endif
してやらんと、いけません。
なんとなく、不安にかられるなぁー。class や template キーワードが入った場合は、c++ マングリングにスイッチしたりすんの??? Objective-C 不気味な感じがする
0 件のコメント:
コメントを投稿