При попытке скомпилировать плагин Checkst MK Livestatus Nagios, я получаю сообщение об ошибке во время процесса «make»:
g++ -DHAVE_CONFIG_H -I. -I.. -I../nagios -fPIC -g -O2 -MT livestatus_so-TableLog.o -MD -MP -MF .deps/livestatus_so-TableLog.Tpo -c -o livestatus_so-TableLog.o `test -f 'TableLog.cc' || echo './'`TableLog.cc
TableLog.cc: In member function ‘void TableLog::updateLogfileIndex()’:
TableLog.cc:250:21: error: expected primary-expression before ‘struct’
TableLog.cc:250:36: error: ‘d_name’ was not declared in this scope
TableLog.cc:250:42: error: ‘offsetof’ was not declared in this scope
make[2]: *** [livestatus_so-TableLog.o] Error 1
Соответствующая часть TableLog.cc:
250 int len = offsetof(struct dirent, d_name)
251 + pathconf(log_archive_path, _PC_NAME_MAX) + 1;
Источник доступен по адресу http://www.mathias-kettner.de/download/mk-livestatus-1.1.6p1.tar.gz
Об этой проблеме есть ветка списка рассылки (http://permalink.gmane.org/gmane.network.nagios.checkmk/2560), но остается без ответа.
В TableLog.cc отсутствовал включаемый файл «stddef.h», который определяет макрос offsetof ().
Просто добавь
#include <stddef.h>
К началу TableLog.cc
как сказал омрибахуми в предыдущем ответе, отредактируйте TableLog.cc
файл
затем прокомментируйте 523, 524, 525 строк в setup.sh
скрипт
523 #rm -rf $D
524 #mkdir -p $D
525 #tar xvzf $SRCDIR/livestatus.tar.gz -C $D
Затем выполните setup.sh
сценарий еще раз.