comete un error de archivo al intentar instalar Intel Power Gadget

comete un error de archivo al intentar instalar Intel Power Gadget

Espero que otro usuario de Ubuntu haya intentado ejecutar el dispositivo de potencia Intel y sepa qué problema tengo.

Estoy intentando instalar el dispositivo de energía, al ejecutar el archivo make aparece un mensaje de error:

/usr/lib/power_gadget/rapl.c:516: undefined reference to `log'

Esta línea hace referencia a la línea de un archivo .c:

return (log((double)(time / RAPL_TIME_UNIT)) - A_LNF[F]) / LN2;

¿Se está llamando correctamente a esta función de registro? ¿Me falta una dependencia en mi configuración de Ubuntu? ¿Quizás falta un archivo de biblioteca en mi descarga?

Gracias de antemano por cualquier ayuda

Saludos

rosa

Editar, el archivo de creación está a continuación:

CFLAGS=-g

all: rapl_lib_shared rapl_lib_static power_gadget_static

rapl_lib_shared: 
    gcc $(CFLAGS) -fpic -c msr.c cpuid.c rapl.c 
    gcc $(CFLAGS) -shared -o librapl.so msr.o cpuid.o rapl.o

rapl_lib_static: 
    gcc $(CFLAGS) -c msr.c cpuid.c rapl.c 
    ar rcs librapl.a msr.o cpuid.o rapl.o

power_gadget_static: 
    gcc $(CFLAGS) power_gadget.c -I. -L. -lm -o power_gadget ./librapl.a

power_gadget: 
    gcc $(CFLAGS) power_gadget.c -I. -L. -lm -lrapl -o power_gadget 

gprof: CFLAGS = -pg
gprof: all
    ./power_gadget -e 100 -d 60 >/dev/null 2>&1
    gprof power_gadget > power_gadget.gprof
    rm -f gmon.out
    make clean

clean: 
    rm -f power_gadget librapl.so librapl.a msr.o cpuid.o rapl.o 

Respuesta1

Tuve el mismo problema y logré resolverlo simplemente cambiando la -lmbandera al final del comando GCC.

Entonces el Makefile ahora se ve así:

CFLAGS=-g

all: rapl_lib_shared rapl_lib_static power_gadget_static

rapl_lib_shared: 
gcc $(CFLAGS) -fpic -c msr.c cpuid.c rapl.c
gcc $(CFLAGS) -shared -o librapl.so msr.o cpuid.o rapl.o

rapl_lib_static:
gcc $(CFLAGS) -c msr.c cpuid.c rapl.c
ar rcs librapl.a msr.o cpuid.o rapl.o

power_gadget_static: 
gcc $(CFLAGS) power_gadget.c -I. -L. -o power_gadget ./librapl.a -lm

power_gadget:
gcc $(CFLAGS) power_gadget.c -I. -L. -lrapl -o power_gadget -lm

gprof: CFLAGS = -pg
gprof: all
./power_gadget -e 100 -d 60 >/dev/null 2>&1
gprof power_gadget > power_gadget.gprof
rm -f gmon.out
make clean

clean:
rm -f power_gadget librapl.so librapl.a msr.o cpuid.o rapl.o

información relacionada