我遵循了现有Stackoverflow问题/答案Building Perf with Babeltrace (for Perf to CTF Conversion)提供的说明
使用Babeltrace转换支持构建linux/tools/perf失败,并显示以下错误:
链路性能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之前成功安装并可用的。
发布于 2019-01-04 16:41:01
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。
linux内核版本4.15 - 4.20中的perf工具似乎是为babeltrace的稳定-1.5分支编写的。
https://stackoverflow.com/questions/53992527
复制相似问题