Я пытаюсь скомпилировать библиотеку, которая включает некоторые заголовки из пакета kernel-devel. Я связал соответствующие заголовки, но теперь я получаю ошибки компиляции в этих заголовочных файлах.
/usr/include/asm-generic/bitops/fls64.h: In function ‘int fls64(__u64)’:
/usr/include/asm-generic/bitops/fls64.h:10: error: ‘fls’ was not declared in this scope
/usr/include/asm-generic/bitops/fls64.h:11: error: ‘fls’ was not declared in this scope
И вот код из asm-generic / bitops / fls64.h
#ifndef _ASM_GENERIC_BITOPS_FLS64_H_
#define _ASM_GENERIC_BITOPS_FLS64_H_
#include <asm/types.h>
static inline int fls64(__u64 x)
{
__u32 h = x >> 32;
if (h)
return fls(h) + 32;
return fls(x);
}
#endif /* _ASM_GENERIC_BITOPS_FLS64_H_ */
Поскольку вы можете заметить "return fls (h)", определения fls () нет. Я могу решить эту проблему, добавив "fls.h", но я полагаю, чтобы исправить такие ошибки в стандартных заголовках ядра ??
Любые указатели, которые могли бы объяснить, почему это так и что я могу сделать, чтобы обойти такие проблемы? Кстати, ошибки, которые я здесь упомянул, являются лишь верхушкой айсберга. В нескольких таких заголовках много таких ошибок (отсутствующих разметок).
Помощь будет принята с благодарностью. Спасибо!
Rgds / Р.
PS: некоторые сведения о системе:
Распространение Linux: CentOS (5.5)
[raj@localhost common]$ uname -a
Linux localhost.localdomain 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:56 EDT 2011 i686 i686 i386 GNU/Linux
[raj@localhost common]$ cat /proc/version
Linux version 2.6.18-238.9.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Tue Apr 12 18:10:56 EDT 2011