bfd.h应该在Ubuntu 14.04中包含libiberty / ansidecl.h吗?


23

binutils软件包似乎已更改,因为它的包含目录libiberty.h已移至/usr/include/libiberty,因此bfd.h关于可能存在错误的包含ansidecl.h

使用binutils跟踪实用程序时出现那些编译错误

/usr/include/libiberty/libiberty.h: In function ‘basename’:
/usr/include/libiberty/libiberty.h:110:38: error: expected declaration specifiers before ‘ATTRIBUTE_RETURNS_NONNULL’
 extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); 
                                      ^
/usr/include/libiberty/libiberty.h:121:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ATTRIBUTE_RETURNS_NONNULL’
 extern const char *lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); 
                                             ^
/usr/include/libiberty/libiberty.h:126:49: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ATTRIBUTE_RETURNS_NONNULL’
 extern const char *dos_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
                                                 ^
/usr/include/libiberty/libiberty.h:132:50: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ATTRIBUTE_RETURNS_NONNULL’
 extern const char *unix_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);

通过更改bfd.h为include /usr/include/libiberty/ansidecl.h,在我的编译中一切正常。

请问,这个问题有什么提示吗?谢谢。

Answers:


1

据报道由爱德华Abinader(问题的作者)和肖恩·杰克曼错误58689味精00135分别从交换的数据总结...

这是由Ubuntu系统上较旧的库安装引起的问题,我想这既不是Ubuntu也不是binutils的错,但看起来像系统更新问题。解决方案本身就是问题所在。




PS:但是,最主要的是我们当时和现在都有一个答案。可以在链接上找到更多详细信息!如果需要,请改进此答案。:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.