Cannot load library : undefined symbol
在Linux下开发动态链接库,编译了一个应用程序,一个动态链接库,运行#./test so/libtest.so悲哀的看到:Cannot load library: so/libtest.so: undefined symbol: _ZTV13BaseCurveDatawhy?在定义的基类中,class BaseCurveData{public: Ba
·
在Linux下开发动态链接库,编译了一个应用程序,一个动态链接库,运行
#./test so/libtest.so
悲哀的看到:
Cannot load library: so/libtest.so: undefined symbol: _ZTV13BaseCurveData
why?
在定义的基类中,
class BaseCurveData
{
public:
BaseCurveData() {}
virtual ~BaseCurveData() {}
virtual bool GetVersionInfo(char* version);
};
GetVersionInfo没有添加任何实现,两种方法:
改为:
virtual bool GetVersionInfo(char* version) { return false; }
或者:
virtual bool GetVersionInfo(char* version) = 0; //写成纯虚.
不小心把
-fPIC
写成
-fPCI
运行命令:
# nm --dynamic --defined-only libtest.so
查看所有定义的接口,真是一个好命令
更多推荐
已为社区贡献1条内容
所有评论(0)