muskaan muskaan - 1 year ago 258
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 Source

You need to place

#define _GNU_SOURCE

at least before

#include <sched.h>

as the define steers what the file included shall provide.


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