다른 Ubuntu 사용자가 Intel Power Gadget을 실행해 보고 내가 겪고 있는 문제가 무엇인지 알기를 바랍니다.
Power Gadget을 설치하려고 하는데 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 설정에 대한 종속성이 누락되었나요? 내 다운로드에 누락된 라이브러리 파일이 있습니까?
도움을 주셔서 미리 감사드립니다.
문안 인사
로즈
편집하세요. 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
답변1
나는 동일한 문제를 겪었고 단순히 -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