我包括:
#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'
如何解决此问题?
答案 0 :(得分:19)
你需要放置
#define _GNU_SOURCE
至少之前
#include <sched.h>
因为定义操纵所包含的文件应提供的内容。
有关the related man-page here的详情。
<强>更新强>:
要确保根据需要设置所有内容,请将#define
放在源文件的最开头,即所有#include
之前。
或者,您可以通过指定选项
在GCC命令行上传递#define
-D_GNU_SOURCE