erro no arquivo, tentando instalar o dispositivo de energia da Intel

3

Espero que outro usuário do Ubuntu tenha tentado executar o gadget de energia da Intel e saiba qual problema estou tendo.

Estou tentando instalar o gadget de energia, executando o arquivo make e recebo uma mensagem de erro:

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

Esta linha refere-se à linha em um arquivo .c:

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

Esta função de registro está sendo chamada corretamente? Eu estou perdendo uma dependência na minha configuração do Ubuntu? Há talvez um arquivo de biblioteca ausente no meu download?

Agradecemos antecipadamente por qualquer ajuda

Atenciosamente

Roz

Editar, o arquivo de criação está abaixo:

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 
    
por Roz Agnew 03.02.2014 / 22:06

1 resposta

5

Eu peguei o mesmo problema e consegui resolvê-lo simplesmente mude o -lm flag para o final do comando do GCC.

Então, o Makefile agora é assim:

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
    
por LuisTeixeira 28.03.2014 / 12:14

Tags