2011/03/10

C言語とC++の連携したプロジェクトで was not declared in this scope がでたら、、

C++のプログラムの中の関数で、C言語のプログラムから関数を参照したい場合、
"xx" was not declared in this scopeっていうエラーがでました。

調べるとCから参照する場合、
externで連携する必要があります。

/* x.cpp */
extern "C" int test(char *, char *);

/* x.c */
int test(char *, char *);

とすればおk
参照元がc言語というのを見落としていたため無駄な時間をかけてしまった、、