snmp_pp库有关问题 snmp++

snmp_pp库问题 snmp++
本帖最后由 xhu_eternalcc 于 2015-01-22 11:15:46 编辑
配置好了snmp,通过snmpwalk能正常获取cpu 内存 硬盘信息
但是通过snmp++库编写程序,不能获取硬盘信息,错误:SNMP: Variable does not exist,不知道是为什么,求解答。程序中的oid都是没问题的啊

#include <iostream>
#include <string>
#include <snmp_pp/snmp_pp.h>
//cpu
//.1.3.6.1.4.1.2021.11.11.0 idle percentage

//.1.3.6.1.2.1.25.2.2.0 memory size
//.1.3.6.1.2.1.25.2.3.1.6.1 free_mem_used
//- 
//.1.3.6.1.2.1.25.2.3.1.6.6 free_mem_buffers 
//- 
//.1.3.6.1.2.1.25.2.3.1.6.7 free_mem_cached

//disk
//.1.3.6.1.4.1.2021.9.1.7  disk available
//.1.3.6.1.4.1.2021.9.1.8  disk used
//.1.3.6.1.4.1.2021.9.1.9  disk used percentage

//network
const std::string cpuIdleOid("1.3.6.1.4.1.2021.9.1.7");
void get_system(){
        int status;
        CTarget ctarget((IpAddress)"202.127.204.190");
        Oid id(cpuIdleOid.c_str());
        std::cout<<id.get_printable()<<std::endl;
        //ctarget.set_timeout(100);//unit 1/100s  100* 1/100s
        Vb vb(Oid(cpuIdleOid.c_str()));
        Pdu pdu;
        Snmp snmp(status);
        if(status!=SNMP_CLASS_SUCCESS){
                std::cout<<snmp.error_msg(status)<<std::endl;
                return;
        }
        pdu+=vb;
        if((status=snmp.get(pdu,ctarget))!=SNMP_CLASS_SUCCESS){
                std::cout<<"error:"<<snmp.error_msg(status)<<std::endl;
        }else{
                pdu.get_vb(vb,0);
                std::cout<<"System Descriptor="<<vb.get_printable_value()<<std::endl;
        }
}
int main(int argc,char**argv){
        get_system();
        return 0;
}

------解决思路----------------------
先编译链接调试人家自带的例子代码。(←这是万能回复)snmp_pp库有关问题 snmp++