Cannot load library : undefined symbol

在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

查看所有定义的接口,真是一个好命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值