Error message "undefined reference for `CPU_ZERO'"

c, linux, pthreads

Solution

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 `#include`s.

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

-D_GNU_SOURCE

Problem

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?

Original source

Related problems