【发布时间】:2020-07-25 23:25:47
【问题描述】:
尝试通过
构建 gdb master(e79eb02f2f09baecffb144bac6804f975065466f,自 2020 年 7 月 9 日起)./configure && make -j4
gdb as 最终链接过程中的错误
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的生成是错误的。
【问题讨论】:
标签: gdb linker-errors build-error