编译错误,标题重复成员,endian.h

时间:2015-11-17 23:53:20

标签: c++ c linux

我正在尝试使用FingerPrinter SDK,它显示了一个在linux上运行它的示例,我在linux上运行它因为它比windows更可定制,我遵循所有指令包括构建和编译,但我得到这个错误。这些SDK使用libusb库和一些usb规则,两者都完美安装和允许。希望得到一些帮助。

这是完整的包,您可以在其中找到所有代码和自述文件。

Dowload code

In file included from /usr/include/x86_64-linux-gnu/bits/waitstatus.h:64:0,
             from /usr/include/stdlib.h:42,
             from /usr/include/usb.h:15,
             from ../lnx/usbl.c:10:
../endian.h:44:10: error: #error Header <endian.h> should define macro __BYTE_ORDER.
     #error Header <endian.h> should define macro __BYTE_ORDER.
      ^
In file included from /usr/include/stdlib.h:42:0,
             from /usr/include/usb.h:15,
             from ../lnx/usbl.c:10:
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:79:15: error: duplicate member ‘__w_retcode’


 unsigned int __w_retcode:8;
           ^
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:80:15: error: duplicate member ‘__w_coredump’


 unsigned int __w_coredump:1;
           ^
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:81:15: error: duplicate member ‘__w_termsig’


 unsigned int __w_termsig:7;
           ^
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:93:15: error: duplicate member ‘__w_stopsig’


 unsigned int __w_stopsig:8; /* Stopping signal.  */
           ^
/usr/include/x86_64-linux-gnu/bits/waitstatus.h:94:15: error: duplicate member ‘__w_stopval’


 unsigned int __w_stopval:8; /* W_STOPPED if stopped.  */
               ^

1 个答案:

答案 0 :(得分:4)

stdlib.h包含来自您(或SDK)源代码的endian.h而不是标准包含文件中的endian.h,因此永远不会定义__BYTE_ORDER。找到冲突的endian.h文件并重命名。或者从工具链中删除-I编译标记。

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598600

欢迎来到工具链配置地狱。