SO中符号未定义问题 和 头文件.h的作用问题
肥多罗 2010-04-26 04:01:59 类A
包含接口文件.h
打开B的SO文件,想获取B的Init接口
-----------------------------------------------
接口文件.h
包含 B.h
定义一个B的变量
B g_B;
extern "C" int Init()
{
return g_B.Init();
}
------------------------------------------------------------
类B
里面有个函数 int Init()
------------------------------------------------------------
问题: 编译通过,运行时提示说类B未定义 即undefined symbol
但是要是将接口文件改成.h和.cpp,将声明和定义放在两个文件中,运行就没问题了,即
接口文件.h
内容:
包含B.h
extern "C" int Init();
接口文件.cpp
内容:
包含接口文件.h
B g_B;
extern "C" int Init()
{return g_B.Init();}
莫非头文件定义的函数在.o中不存在? 麻烦大家说说看了 谢谢大家