muskaan muskaan - 4 months ago 85
Linux Question

undefined reference to `CPU_ZERO'

I included:

#include <sched.h>

#define _GNU_SOURCE


then in my code I have written (brief mention ):

cpu_set_t set;

CPU_ZERO( &set );
CPU_SET( proc_num, &set );
if (sched_setaffinity( gettid(), sizeof( cpu_set_t ), &set ))
{
perror( "sched_setaffinity" );
return NULL;
}


But when I compile I find

undefined reference to 'CPU_ZERO'

undefined reference to 'CPU_SET'


Please help...

alk alk
Answer

You need to place

#define _GNU_SOURCE

at least before

#include <sched.h>

as the define steers what the file included shall provide.


Update:

To make sure everything is set as needed, place the #define at the very beginning of your source files, that is before all #includes.

Alternatively you can pass the #define on GCC's command line by specifying the option

-D_GNU_SOURCE