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 ‘=’, …Run Code Online (Sandbox Code Playgroud) Ubuntu的13.10(俏皮)之前,/usr/bin/ld符号链接被指向ld.gold了当binutils-gold安装包。Gold 现在随binutils包一起提供,它安装了/usr/bin/ld指向ld.bfd. 有什么原因吗?由于我需要使用黄金,我可以更改符号链接吗?它会破坏某些东西吗?
如何从命令行获取这样的列表,包括每个实用程序的版本?默认情况下,它们是否在同一个文件中?
看来我不能再为 13.10 安装黄金链接器了:
$ sudo apt-get install binutils-gold
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'binutils' instead of 'binutils-gold'
binutils is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 276 not upgraded
Run Code Online (Sandbox Code Playgroud)
我看到了很多“删除”通知。什么?我已经试过了apt-get update,但没有帮助
编辑同样的问题发生在 Trusty (14.04)