4

我刚刚使用 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 库或编译器提供的东西。有谁知道它可能去了哪里或者现在应该用什么代替它?

4

1 回答 1

4

由于 gcc 团队对头文件中的一些清理,以前偶然包含的定义和类型不再存在。在这种情况下,以前间接包含的标头<sys/resource.h>在 4.7.2 中停止这样做,从而破坏了编译。

直接包括

#include <sys/resource.h> 

获取 __priority_which_t 的定义并允许编译完成。

于 2013-08-29T17:19:03.760 回答