我希望另一位 Ubuntu 用户尝试运行 Intel 电源小工具并知道我遇到了什么问题。
我正在尝试安装电源小工具,运行 make 文件时收到一条错误消息:
/usr/lib/power_gadget/rapl.c:516: undefined reference to `log'
Run Code Online (Sandbox Code Playgroud)
此行指的是 .c 文件中的行:
return (log((double)(time / RAPL_TIME_UNIT)) - A_LNF[F]) / LN2;
Run Code Online (Sandbox Code Playgroud)
这个日志函数被正确调用了吗?我是否缺少对 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
Run Code Online (Sandbox Code Playgroud)
小智 7
我遇到了同样的问题并设法通过简单地将-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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2434 次 |
最近记录: |