2013-04-23 7 views
4

Я только что обновился до fedora 18 с gcc 4.7.2. Код, который ранее составленный в настоящее время завершается с ошибкой о __priority_which_tнеизвестный тип имя '__priority_which_t'

unknown type name '__priority_which_t' 
int setpriority(__priority_which_t which, 
       id_t who, 
       int prio) __attribute__((weak)); 

Я предполагаю, так как это _t и начинается с два подчеркивает, что это что-то обеспечивается библиотекой С или компилятором. Кто-нибудь знает, куда он мог пойти или что теперь следует использовать вместо него?

+1

Быстрый поиск в Google показывает, что он должен находиться в 'resource.h' вместе с определением' setpriority'. Ссылка: http://fossies.org/dox/glibc-2.17/resource_2sys_2resource_8h_source.html Можете ли вы показать еще какой-то контекст? –

+0

Ha! Быстрая вставка сделала трюк. Карл, какой запрос вы использовали, чтобы найти это, он полностью ускользнул от меня, я приму его, если вы напишете его как ответ. –

+3

Я не знаю о Карле, но я просто Googled '' __priority_which_t'' и нашел [эту страницу] (http://fossies.org/dox/glibc-2.17/resource_2sys_2resource_8h.html) ... – nneonneo

ответ

4

Из-за некоторой очистки в файлах заголовков определениями и типами команд gcc, которые ранее были случайно включены, больше не существует. В этом случае заголовок, который ранее косвенно включал <sys/resource.h>, прекратил делать это в 4.7.2, нарушив компиляцию.

Непосредственно включая

#include <sys/resource.h> 

получает определение __priority_which_t и позволяет компиляции для завершения.

Смежные вопросы