Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error message "undefined reference for `CPU_ZERO'"

Tags:

c

linux

pthreads

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' 

How can I fix this problem?

like image 904
muskaan Avatar asked Jun 04 '14 10:06

muskaan


1 Answers

You need to place

#define _GNU_SOURCE

at least before

#include <sched.h>

as the define steers what the file included shall provide.

More on this on the related man-page here.


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
like image 190
alk Avatar answered Nov 02 '22 14:11

alk