Я начал изучать POSIX-таймеры, поэтому я также начал делать некоторые упражнения, но у меня сразу возникли проблемы с компилятором. При компиляции этого кода я получаю какие-то странные сообщения о макросах типа CLOCK_MONOTONIC. Они определены в различных библиотеках, таких как time.h и т. д., но компилятор выдает мне ошибки, как будто они не определены.
Это странно, потому что я использую Fedora 16, и некоторые из моих друзей с Ubuntu получают меньше ошибок компилятора, чем я :-O
Я компилирую с gcc -O0 -g3 -Wall -c -fmessage-length=0 -std=c99 -lrt
Вот ошибки, которые я получаю:
struct sigevent sigeventStruct
дает:storage size of ‘sigeventStruct’ isn’t known unused variable ‘sigeventStruct’ [-Wunused-variable] Type 'sigevent' could not be resolved unknown type name ‘sigevent’
sigeventStruct.sigev_notify = SIGEV_SIGNAL
дает:‘SIGEV_SIGNAL’ undeclared (first use in this function) request for member ‘sigev_notify’ in something not a structure or union Field 'sigev_notify' could not be resolved
if(timer_create(CLOCK_MONOTONIC, sigeventStruct, numero1) == -1)
дает:implicit declaration of function ‘timer_create’ [-Wimplicit-function- declaration] ‘CLOCK_MONOTONIC’ undeclared (first use in this function) Symbol 'CLOCK_MONOTONIC' could not be resolved
Вот код:
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <signal.h>
int main()
{
timer_t numero1;
struct sigevent sigeventStruct;
sigeventStruct.sigev_notify = SIGEV_SIGNAL;
if(timer_create(CLOCK_MONOTONIC, sigeventStruct, numero1) == -1)
{
printf( "Errore: %s\n", strerror( errno ) );
}
return 0;
}
<pre></pre>
в вопросе. - person Some programmer dude   schedule 16.01.2012