Muskaan
Yo incluí:
#include <sched.h>
#define _GNU_SOURCE
Luego, en mi código he escrito (breve mención):
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;
}
Pero cuando compilo encuentro
undefined reference to 'CPU_ZERO'
undefined reference to 'CPU_SET'
¿Como puedo solucionar este problema?
alca
Necesitas colocar
#define _GNU_SOURCE
al menos antes
#include <sched.h>
como la definición dirige lo que debe proporcionar el archivo incluido.
Más sobre esto en la página de manual relacionada aquí.
Actualizar:
Para asegurarse de que todo esté configurado según sea necesario, coloque el #define
al principio de sus archivos fuente, eso es antes de todo #include
s.
Alternativamente, puede pasar el #define
en la línea de comando de GCC especificando la opción
-D_GNU_SOURCE
-
básicamente funcionó después de definir antes todas las funciones de la biblioteca.
– muskaan
5 de junio de 2014 a las 7:33
-
@LinconFive: No realmente. Vea esta respuesta: stackoverflow.com/a/10687353/694576 o esta, siendo aún más explícita: stackoverflow.com/a/7297011/694576
– alk
5 de marzo de 2020 a las 6:59