首页 > 解决方案 > 无法在 Ubuntu 20.04 上构建 GDB master 2020 年 7 月 9 日

问题描述

尝试通过

./configure && make -j4

gdb 最终链接期间的错误为

  CXXLD  gdb
init.c:215: error: undefined reference to '_initialize_ser_hard()'
init.c:236: error: undefined reference to '_initialize_tui_()'
init.c:244: error: undefined reference to '_initialize_array_vie()'
init.c:249: error: undefined reference to '_initialize_copy_bit()'
init.c:253: error: undefined reference to '_initialize_function_vie()'
init.c:263: error: undefined reference to '_initialize_rsp_lo()'
init.c:267: error: undefined reference to '_initialize_string_vie()'
init.c:287: error: undefined reference to '_initialize_break_catch_thro()'
init.c:297: error: undefined reference to '_initialize_corelo()'
init.c:307: error: undefined reference to '_initialize_d()'
init.c:309: error: undefined reference to '_initialize_d()'
init.c:311: error: undefined reference to '_initialize_d()'
init.c:312: error: undefined reference to '_initialize_d()'
init.c:323: error: undefined reference to '_initialize_frame_un()'
init.c:334: error: undefined reference to '_initialize_inflo()'
collect2: error: ld returned 1 exit status

这是一个已知的问题?

有什么问题?

更新

我已将错误追踪到gdb/init.c(由构建生成),其中包含似乎从末端截断的符号。例如,关于_initialize_ser_hard用作

...
extern initialize_file_ftype _initialize_ser_hard;
...
void
initialize_all_files (void)
{
  ...
  _initialize_ser_hard ();
...

gdb/init.c. 但_initialize_ser_hard在源代码树的其余部分中找不到。但是,符号_initialize_ser_hardwire是在文件中定义的gdb/ser-unix.c。我认为其余缺失的符号也是如此。所以我的结论是那一代gdb/init.c是错误的。

标签: gdblinker-errorsbuild-error

解决方案


好吧,我也是,FWIW。

在 Fedora 32 x86_64 上。

我确实注意到在生成的 gdb/Makefile 中,我收到警告“Sucpisious line 593”,在我的情况下,保存在 emacs 中。这是 Makefile 的部分,最后一行是空的或只有选项卡的第 593 行:

INTERNAL_CPPFLAGS = $(CPPFLAGS) - I/usr/include/guile/2.0 -pthread -I/usr/include/\python3.8 -I/usr/include/python3.8 \

注意继续“”


推荐阅读