Net-SNMP, ошибка: ожидаемый идентификатор или ‘(‘ перед числовой константой

Попытка скомпилировать библиотеку Net-SNMP в Windows с Mingw64 через оболочку MSYS … Я следую инструкциям внутри README.win32

./ configure —prefix = «$ BASEDIR» \
—with-mibdirs = «$ BASEDIR / share / snmp / mibs» \
—with-mib-modules = «агентx disman / event-mib winExtDLL
Примеры / Пример «\
—disable-embedded-perl —without-perl-modules \

После запуска make
Через некоторое время я получаю следующую ошибку

../../include/net-snmp/config_api.h:98:0,
из ../../include/net-snmp/net-snmp-includes.h:76,
из mibII / at.c: 94: ../../include/net-snmp/library/vacm.h:42:20: ошибка: ожидаемый идентификатор или ‘(‘ b перед числовой константой

#define VIEWSTATUS 7

make [2]: *** [mibII / at.lo] Ошибка 1

make [2]: выход из каталога /home/net-snmp-5.7.3/agent/mibgroup

make [1]: *** [subdirs] Ошибка 1

make [1]: выход из каталога /home/net-snmp-5.7.3/agent ‘

make: *** [subdirs] Ошибка 1

Это файл, содержащий строку ошибки

    #ifdef __cplusplus
extern          "C" {
#endif

#define VACM_SUCCESS       0
#define VACM_NOSECNAME     1
#define VACM_NOGROUP       2
#define VACM_NOACCESS      3
#define VACM_NOVIEW        4
#define VACM_NOTINVIEW     5
#define VACM_NOSUCHCONTEXT 6
#define VACM_SUBTREE_UNKNOWN 7

#define SECURITYMODEL   1
#define SECURITYNAME    2
#define SECURITYGROUP   3
#define SECURITYSTORAGE 4
#define SECURITYSTATUS  5

#define ACCESSPREFIX    1
#define ACCESSMODEL 2
#define ACCESSLEVEL 3
#define ACCESSMATCH 4
#define ACCESSREAD  5
#define ACCESSWRITE 6
#define ACCESSNOTIFY    7
#define ACCESSSTORAGE   8
#define ACCESSSTATUS    9

#define VACMVIEWSPINLOCK 1
#define VIEWNAME    2
#define VIEWSUBTREE 3
#define VIEWMASK    4
#define VIEWTYPE    5
#define VIEWSTORAGE 6
#define VIEWSTATUS  7

#define VACM_MAX_STRING 32
#define VACMSTRINGLEN   34      /* VACM_MAX_STRING + 2 */

struct vacm_groupEntry {
int             securityModel;
char            securityName[VACMSTRINGLEN];
char            groupName[VACMSTRINGLEN];
int             storageType;
int             status;

u_long          bitMask;
struct vacm_groupEntry *reserved;
struct vacm_groupEntry *next;
};

#define CONTEXT_MATCH_EXACT  1
#define CONTEXT_MATCH_PREFIX 2

/* VIEW ENUMS ---------------------------------------- */

/* SNMPD usage: get/set/send-notification views */
#define VACM_VIEW_READ     0
#define VACM_VIEW_WRITE    1
#define VACM_VIEW_NOTIFY   2

/* SNMPTRAPD usage: log execute and net-access (forward) usage */
#define VACM_VIEW_LOG      3
#define VACM_VIEW_EXECUTE  4
#define VACM_VIEW_NET      5

/* VIEW BIT MASK VALUES-------------------------------- */

/* SNMPD usage: get/set/send-notification views */
#define VACM_VIEW_READ_BIT      (1 << VACM_VIEW_READ)
#define VACM_VIEW_WRITE_BIT     (1 << VACM_VIEW_WRITE)
#define VACM_VIEW_NOTIFY_BIT    (1 << VACM_VIEW_NOTIFY)

/* SNMPTRAPD usage: log execute and net-access (forward) usage */
#define VACM_VIEW_LOG_BIT      (1 << VACM_VIEW_LOG)
#define VACM_VIEW_EXECUTE_BIT  (1 << VACM_VIEW_EXECUTE)
#define VACM_VIEW_NET_BIT      (1 << VACM_VIEW_NET)

#define VACM_VIEW_NO_BITS      0

/* Maximum number of views in the view array */
#define VACM_MAX_VIEWS     8

#define VACM_VIEW_ENUM_NAME "vacmviews"
void init_vacm(void);

struct vacm_accessEntry {
char            groupName[VACMSTRINGLEN];
char            contextPrefix[VACMSTRINGLEN];
int             securityModel;
int             securityLevel;
int             contextMatch;
char            views[VACM_MAX_VIEWS][VACMSTRINGLEN];
int             storageType;
int             status;

u_long          bitMask;
struct vacm_accessEntry *reserved;
struct vacm_accessEntry *next;
};

struct vacm_viewEntry {
char            viewName[VACMSTRINGLEN];
oid             viewSubtree[MAX_OID_LEN];
size_t          viewSubtreeLen;
u_char          viewMask[VACMSTRINGLEN];
size_t          viewMaskLen;
int             viewType;
int             viewStorageType;
int             viewStatus;

u_long          bitMask;

struct vacm_viewEntry *reserved;
struct vacm_viewEntry *next;
};

NETSNMP_IMPORT
void            vacm_destroyViewEntry(const char *, oid *, size_t);
NETSNMP_IMPORT
void            vacm_destroyAllViewEntries(void);

#define VACM_MODE_FIND                0
#define VACM_MODE_IGNORE_MASK         1
#define VACM_MODE_CHECK_SUBTREE       2
NETSNMP_IMPORT
struct vacm_viewEntry *vacm_getViewEntry(const char *, oid *, size_t,
int);
/*
* Returns a pointer to the viewEntry with the
* same viewName and viewSubtree
* Returns NULL if that entry does not exist.
*/

NETSNMP_IMPORT
int vacm_checkSubtree(const char *, oid *, size_t);

/*
* Check to see if everything within a subtree is in view, not in view,
* or possibly both.
*
* Returns:
*   VACM_SUCCESS          The OID is included in the view.
*   VACM_NOTINVIEW        If no entry in the view list includes the
*                         provided OID, or the OID is explicitly excluded
*                         from the view.
*   VACM_SUBTREE_UNKNOWN  The entire subtree has both allowed and
*                         disallowed portions.
*/

NETSNMP_IMPORT
void
vacm_scanViewInit(void);
/*
* Initialized the scan routines so that they will begin at the
* beginning of the list of viewEntries.
*
*/NETSNMP_IMPORT
struct vacm_viewEntry *vacm_scanViewNext(void);
/*
* Returns a pointer to the next viewEntry.
* These entries are returned in no particular order,
* but if N entries exist, N calls to view_scanNext() will
* return all N entries once.
* Returns NULL if all entries have been returned.
* view_scanInit() starts the scan over.
*/

NETSNMP_IMPORT
struct vacm_viewEntry *vacm_createViewEntry(const char *, oid *,
size_t);
/*
* Creates a viewEntry with the given index
* and returns a pointer to it.
* The status of this entry is created as invalid.
*/

NETSNMP_IMPORT
void            vacm_destroyGroupEntry(int, const char *);
NETSNMP_IMPORT
void            vacm_destroyAllGroupEntries(void);
NETSNMP_IMPORT
struct vacm_groupEntry *vacm_createGroupEntry(int, const char *);
NETSNMP_IMPORT
struct vacm_groupEntry *vacm_getGroupEntry(int, const char *);
NETSNMP_IMPORT
void            vacm_scanGroupInit(void);
NETSNMP_IMPORT
struct vacm_groupEntry *vacm_scanGroupNext(void);

NETSNMP_IMPORT
void            vacm_destroyAccessEntry(const char *, const char *,
int, int);
NETSNMP_IMPORT
void            vacm_destroyAllAccessEntries(void);
NETSNMP_IMPORT
struct vacm_accessEntry *vacm_createAccessEntry(const char *,
const char *, int,
int);
NETSNMP_IMPORT
struct vacm_accessEntry *vacm_getAccessEntry(const char *,
const char *, int, int);
NETSNMP_IMPORT
void            vacm_scanAccessInit(void);
NETSNMP_IMPORT
struct vacm_accessEntry *vacm_scanAccessNext(void);

void            vacm_destroySecurityEntry(const char *);
struct vacm_securityEntry *vacm_createSecurityEntry(const char *);
struct vacm_securityEntry *vacm_getSecurityEntry(const char *);
void            vacm_scanSecurityInit(void);
struct vacm_securityEntry *vacm_scanSecurityEntry(void);
NETSNMP_IMPORT
int             vacm_is_configured(void);

void            vacm_save(const char *token, const char *type);
void            vacm_save_view(struct vacm_viewEntry *view,
const char *token, const char *type);
void            vacm_save_access(struct vacm_accessEntry *access_entry,
const char *token, const char *type);
void            vacm_save_auth_access(struct vacm_accessEntry *access_entry,
const char *token, const char *type, int authtype);
void            vacm_save_group(struct vacm_groupEntry *group_entry,
const char *token, const char *type);

NETSNMP_IMPORT
void            vacm_parse_config_view(const char *token, const char *line);
NETSNMP_IMPORT
void            vacm_parse_config_group(const char *token,
const char *line);
NETSNMP_IMPORT
void            vacm_parse_config_access(const char *token,
const char *line);
NETSNMP_IMPORT
void            vacm_parse_config_auth_access(const char *token,
const char *line);

NETSNMP_IMPORT
int             store_vacm(int majorID, int minorID, void *serverarg,
void *clientarg);

NETSNMP_IMPORT
struct vacm_viewEntry *netsnmp_view_get(struct vacm_viewEntry *head,
const char *viewName,
oid * viewSubtree,
size_t viewSubtreeLen, int mode);#ifdef __cplusplus
}
#endif
#endif                          /* VACM_H */

Я попытался удалить строку #define VIEWSTATUS 7, что привело к другой ошибке.

mibII / vacm_vars.c: в функции ‘init_vacm_vars’:

mibII / vacm_vars.c: 106: 10: ошибка: «VIEWSTATUS» не объявлен (первое использование в этой функции
Тион)

{VIEWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,

mibII / vacm_vars.c: 106: 10: примечание: каждый необъявленный идентификатор сообщается только один раз
для каждой функции она появляется в

mibII / vacm_vars.c: в функции ‘var_vacm_view’:

mibII / vacm_vars.c: 518: 10: ошибка: необъявленное ‘VIEWSTATUS’ (первое использование в этой функции
Тион)

case VIEWSTATUS:

make [2]: *** [mibII / vacm_vars.lo] Ошибка 1

make [2]: выход из каталога `/home/net-snmp-5.7.3/agent/mibgroup ‘

make [1]: *** [subdirs] Ошибка 1

make [1]: выход из каталога `/home/net-snmp-5.7.3/agent ‘

make: *** [subdirs] Ошибка 1

Конечно, он не может найти макрос VIEWSTATUS, который я только что закомментировал.
Как я понимаю, есть проблема с пространством имен? но я выполнил поиск исходного кода Net-SNMP 5.7.3 и не могу найти макрос VIEWSTATUS где-либо еще, кроме того, где он определен и где используется в последней ошибке выше.
Что здесь происходит? Любые идеи приветствуются …

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]