сделать ошибку файла, пытаясь установить гаджет для гаджета Intel

3

Я надеюсь, что еще один пользователь Ubuntu попытался запустить гаджет Intel power и знает, в чем проблема.

Я пытаюсь установить гаджет питания, запустив make-файл, я получаю сообщение об ошибке:

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

Эта строка относится к строке в файле .c:

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

Правильно ли эта функция журнала вызывается? У меня отсутствует зависимость от настройки Ubuntu? Возможно ли отсутствующий файл библиотеки в моей загрузке?

Заранее благодарим за помощь

Привет

Roz

Изменить, файл make находится ниже:

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 
    
задан Roz Agnew 03.02.2014 в 22:06
источник

1 ответ

5

У меня такая же проблема, и мне удалось ее решить, просто изменив флаг -lm до конца команды GCC.

Итак, Makefile теперь выглядит так:

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
    
ответ дан LuisTeixeira 28.03.2014 в 12:14