我刚用gcc 4.7.2升级到fedora 18。之前编译的代码现在失败,并显示有关__priority_which_t
的错误unknown type name '__priority_which_t'
int setpriority(__priority_which_t which,
id_t who,
int prio) __attribute__((weak));
我猜是因为它是_t并且以两个下划线开头,它是c库或编译器提供的东西。有谁知道它可能已经消失的地方或现在应该使用什么?
答案 0 :(得分:4)
由于gcc团队定义和类型在头文件中进行了一些清理,以前不再包含这些定义和类型。在这种情况下,之前间接包含<sys/resource.h>
的标头在4.7.2中停止了这样做,打破了编译。
直接包括
#include <sys/resource.h>
获取__priority_which_t的定义并允许编译完成。