我遵循了现有Stackoverflow问题/答案Building Perf with Babeltrace (for Perf to CTF Conversion)
提供的说明使用Babeltrace转换支持构建linux / tools / perf失败,并出现以下错误:
LINK性能
libperf.a(libperf-in.o): In function event_class_add_field:
/tools/perf/util/data-convert-bt.c:988: undefined reference to bt_ctf_validate_identifier
collect2: error: ld returned 1 exit status
Makefile.perf:567: recipe for target 'perf' failed
我尝试使用从Debian Linux发行版上的软件包安装的Babeltrace构建linux / tools / perf,还尝试从源代码构建Babeltrace。
在这两种情况下,Babeltrace均已成功安装并可用,然后尝试使用Babeltrace CTF支持构建linux / tools / perf。
答案 0 :(得分:0)
bt_ctf_validate_identifier
函数似乎仅在babeltrace的1.5分支中定义和实现,而不是在2.0(v2.0.0-pre4)中定义和实现
https://github.com/efficios/babeltrace/blob/stable-1.5/formats/ctf/ir/utils.c https://github.com/efficios/babeltrace/blob/v1.5.6/formats/ctf/ir/utils.c
75 int bt_ctf_validate_identifier(const char *input_string)
尝试从git标签v1.5.6
重新编译并重新安装babeltrace,然后使用此版本清理并重新编译perf。
perf工具似乎是为babeltrace的稳定版1.5分支编写的。