Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C LNK2001VS2012网络SNMP_C_Visual Studio 2012_Net Snmp - Fatal编程技术网

C LNK2001VS2012网络SNMP

C LNK2001VS2012网络SNMP,c,visual-studio-2012,net-snmp,C,Visual Studio 2012,Net Snmp,我对这个链接器错误束手无策。我已经在网上搜索了好几天了,但我完全不知所措。我通过可下载的二进制文件安装了适用于Windows的网络SNMP(Net-SNMP-5.5.0-2.x64.exe),并尝试运行一个示例程序。编译步骤表明没有错误,但我得到了LNK2001的负载:未解决的外部符号错误。这表明我没有正确地链接这些库,但我觉得我现在有一个错误,希望有人能看到我的错误。我肯定是小东西,但我就是找不到 非常感谢你的帮助;你不知道这会减轻我肩上的重量 其他包含目录:C:\net snmp\Inclu

我对这个链接器错误束手无策。我已经在网上搜索了好几天了,但我完全不知所措。我通过可下载的二进制文件安装了适用于Windows的网络SNMP(Net-SNMP-5.5.0-2.x64.exe),并尝试运行一个示例程序。编译步骤表明没有错误,但我得到了LNK2001的负载:未解决的外部符号错误。这表明我没有正确地链接这些库,但我觉得我现在有一个错误,希望有人能看到我的错误。我肯定是小东西,但我就是找不到

非常感谢你的帮助;你不知道这会减轻我肩上的重量

其他包含目录:C:\net snmp\Include

其他库目录:C:\net snmp\lib;C:\net snmp\bin

其他依赖项:netsnmp.lib netsnmpage.lib netsnmphelpers.lib netsnmpmibs.lib netsnmptrapd.lib

注意:Net SNMP已安装到C:\Net SNMP,通过命令行使用内置的Net SNMP实用程序可以完美地工作

资料来源:

#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <string.h>

int main(int argc, char ** argv)
{
    struct snmp_session session;
    struct snmp_session *sess_handle;
    struct snmp_pdu *pdu;
    struct snmp_pdu *response;
    struct variable_list *vars;

    oid id_oid[MAX_OID_LEN];
    oid serial_oid[MAX_OID_LEN];
    size_t id_len = MAX_OID_LEN;
    size_t serial_len = MAX_OID_LEN;

    int status;
    struct tree * mib_tree;

    /*********************/
    if(argv[1] == NULL){
        printf("Please supply a hostname\n");
        exit(1);
    }

    init_snmp("Den Dolphin 2 Check");
    snmp_sess_init( &session );

    session.version = SNMP_VERSION_1;
    session.community = (u_char*) "public";
    session.community_len = strlen((const char *)session.community);
    session.peername = argv[1]; //172.20.2.103 - Den Dolphin 2

    sess_handle = snmp_open(&session);
    add_mibdir(".");
    mib_tree = read_mib("xiden.txt");
    pdu = snmp_pdu_create(SNMP_MSG_GET);

    read_objid("PowerNet-MIB::upsBasicIdentModel.0", id_oid, &id_len);
    snmp_add_null_var(pdu, id_oid, id_len);
    read_objid("PowerNet-MIB::upsAdvIdentSerialNumber.0", serial_oid, &serial_len);

    snmp_add_null_var(pdu, serial_oid, serial_len);
    status = snmp_synch_response(sess_handle, pdu, &response);

    for(vars = response->variables; vars; vars = vars->next_variable)
        print_value(vars->name, vars->name_length, vars);

    snmp_free_pdu(response);
    snmp_close(sess_handle);
    return (0);
}
链接器配置命令行:

/OUT:"W:\SNMP Depot\NetSMNP\snmp_test\snmp_test\Release\snmp_test.exe" /MANIFEST /LTCG 
/NXCOMPAT /PDB:"W:\SNMP Depot\NetSMNP\snmp_test\snmp_test\Release\snmp_test.pdb" 
/DYNAMICBASE "netsnmp.lib" "netsnmpagent.lib" "netsnmphelpers.lib" "netsnmpmibs.lib" 
"netsnmptrapd.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" 
"advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" 
"odbccp32.lib" /DEBUG /MACHINE:X86 /OPT:REF /SAFESEH /PGD:"W:\SNMP 
Depot\NetSMNP\snmp_test\snmp_test\Release\snmp_test.pgd" /MANIFESTUAC:"level='asInvoker' 
uiAccess='false'" /ManifestFile:"Release\snmp_test.exe.intermediate.manifest" /OPT:ICF 
/ERRORREPORT:PROMPT /NOLOGO /VERBOSE /LIBPATH:"C:\net-snmp\lib" /LIBPATH:"C:\net-snmp\bin" 
/TLBID:1 

构建和链接网络snmp应用程序的推荐方法如下:

gcc `net-snmp-config --cflags` `net-snmp-config --libs` `net-snmp-config --external-libs` snmp_test.c -o snmp_test
反向引号用于*nix平台。但您也可以在Windows平台上获得必要的值。在shell中执行以下命令,并确保使用CFLAGS和库的输出值

net-snmp-config --cflags
net-snmp-config --libs
net-snmp-config --external-libs

有关列出所需标志和库的其他选项,请参见。请发布显示链接命令行的生成输出。这是您的意思吗?我更新了帖子你用Visual Studio得到这幢楼了吗?我不得不求助于使用Cmake方法来构建IIRC。非常感谢您回复我的帖子!我不太喜欢*nix saavy,所以我有一个愚蠢的问题要问你:当你说在“shell”中执行命令时,你是指Windows中的Cygwin、命令提示符还是其他什么?另外,在我工作的地方,我们基本上使用VS2008或VS2012处理所有事情,这就是为什么我不在这个项目中使用gcc的原因。“net snmp config”应与其他可执行文件一起位于bin目录中。有关其他选项,请参见手册页。很可能您缺少一个库。此命令将为您提供有关可能的库(您可能缺少其中一个库)的想法。不要担心gcc命令。
net-snmp-config --cflags
net-snmp-config --libs
net-snmp-config --external-libs