Пользовательский плагин collectd не будет компилироваться
Я пытаюсь написать собственный плагин на C для collectd и не могу заставить его скомпилировать с collectd. Я пробовал этот урок и мог заставить плагин работать с системой сборки collectd.
Я также попытался сделать это только с помощью копии подключаемого модуля загрузки и попытался вручную скомпилировать c-файл, чтобы просто связать скомпилированную библиотеку (что-то вроде хакерского подхода). Но я все еще получаю ошибки.
Когда я бегу
gcc -I. -g -O -c load_copy.c -lcommon
Я получаю эту ошибку
daemon/common.h:308:2: error: #error "Don't know how to convert between host
and network representation of doubles."
#error
\
^
daemon/common.h:336:23: warning: ‘struct passwd’ declared inside parameter list
struct passwd **pwbufp);
^
daemon/common.h:336:23: warning: its scope is only this definition or declaration, which is probably not what you want
load_copy.c: In function ‘load_read’:
load_copy.c:184:2: error: #error "No applicable input method."
#error "No applicable input method."
как будто все еще есть ошибка компиляции. Кто-нибудь успешно написал плагин C для collectd? Какие-нибудь советы?
Это из common.h
#ifdef HAVE_LIBKSTAT
int get_kstat(kstat_t **ksp_ptr, char *module, int instance, char *name);
long long get_kstat_value(kstat_t *ksp, char *name);
#endif
#ifndef HAVE_HTONLL
unsigned long long ntohll(unsigned long long n);
unsigned long long htonll(unsigned long long n);
#endif
#if FP_LAYOUT_NEED_NOTHING
#define ntohd(d) (d)
#define htond(d) (d)
#elif FP_LAYOUT_NEED_ENDIANFLIP || FP_LAYOUT_NEED_INTSWAP
double ntohd(double d);
double htond(double d);
#else
#error \
"Don't know how to convert between host and network representation of
doubles."
#endif