构建后带有 net-snmp 的 C++ Qt5 崩溃
Posted
技术标签:
【中文标题】构建后带有 net-snmp 的 C++ Qt5 崩溃【英文标题】:C++ Qt5 with net-snmp crashes after build 【发布时间】:2014-10-17 05:09:30 【问题描述】:我正在尝试在我的项目中使用 http://www.net-snmp.org 库,但在构建后它崩溃了,没有机会获得调试信息。
为了更清楚: 我点击了运行按钮 -> 启动 program.exe -> 程序崩溃,没有任何输出或窗口
我正在使用 Windows 7 64 位、MSVC++ 2010 32 位编译器 Qt5.0.2 和 net-snmp 的二进制文件 http://softlayer-ams.dl.sourceforge.net/project/net-snmp/net-snmp%20binaries/5.7-binaries/net-snmp-5.7.0-1.x86.exe
我在我的 *.pro 文件中添加了这些行以包含库
win32:INCLUDEPATH += "C:\snmp_5.7.0\include"
LIBS += -L"C:\snmp_5.7.0\lib" -lnetsnmp -lnetsnmpmibs -lnetsnmptrapd
并想学习“简单应用教程”(http://www.net-snmp.org/wiki/index.php/TUT:Simple_Application)
这是我目前得到的:
snmpTest.h
#ifndef SNMPTEST_H
#define SNMPTEST_H
#include <QDebug>
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/library/transform_oids.h>
class SnmpTest
public:
SnmpTest();
void doSnmp();
;
#endif // SNMPTEST_H
snmpTest.cpp
#include "snmptest.h"
SnmpTest::SnmpTest()
void SnmpTest::doSnmp()
const char *our_v3_passphrase = "XXXX";
struct snmp_session session, *ss;
struct snmp_pdu *pdu;
struct snmp_pdu *response;
oid anOID[MAX_OID_LEN];
size_t anOID_len = MAX_OID_LEN;
struct variable_list *vars;
int status;
/*
* Initialize the SNMP library
*/
init_snmp("app");
如果我删除该行
init_snmp("app");
它的构建和运行都很好。
【问题讨论】:
【参考方案1】:我自己编译库解决了这个问题
【讨论】:
【参考方案2】:我也遇到这个问题,首先需要编译net-snmp库,然后编译netsnmp.dll需要放在程序可执行文件目录下。
【讨论】:
以上是关于构建后带有 net-snmp 的 C++ Qt5 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MSYS2 中通过 CMake 构建 c++ Qt5 应用程序
Qt5 / PyQt5 : 带有 QML 前端和 Python 后端的自定义 QML 组件