错误消息"未定义的参考`CPU_ZERO'"

时间:2014-06-04 10:09:15

标签: c linux pthreads

我包括:

#include <sched.h>

#define _GNU_SOURCE

然后在我的代码中我写了(简要提及):

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;
}

但是当我编译时,我找到了

undefined reference to 'CPU_ZERO'

undefined reference to 'CPU_SET' 

如何解决此问题?

1 个答案:

答案 0 :(得分:19)

你需要放置

#define _GNU_SOURCE

至少之前

#include <sched.h>

因为定义操纵所包含的文件应提供的内容。

有关the related man-page here的详情。


<强>更新

要确保根据需要设置所有内容,请将#define放在源文件的最开头,即所有#include之前。

或者,您可以通过指定选项

在GCC命令行上传递#define
-D_GNU_SOURCE