魔改C语言编译报错,二次元吐槽风拉满
对白
文本内容
ELFLOAD3.c:499:38: 笨蛋! 在非结构或联合中请求成员'dynstr'
499 dyn_objs[idx].soname = so->dynstr + p_Dyn->d_un.d_val;
ELFLOAD3.c:502:26: 笨蛋! 在非结构或联合中请求成员'dynstr'
502 dep_name = so->dynstr + p_Dyn->d_un.d_val;
ELFLOAD3.c:550:9: 杂鱼~你刚刚隐式声明了函数'soRelo_ProcessReloc', 这个特性早就被弃用了, 是学某本C语言教科书的杂鱼呢 ~ [-Wimplicit-function-declaration]
550 if (soRelo_ProcessReloc(rel, so, tls, (void)findsym, &idx))
ELFLOAD3.c:555:5: 杂鱼~你刚刚隐式声明了函数'soLoad_SegmentProtect', 这个特性早就被弃用了, 是学某本C语言教科书的杂鱼呢 ~ [-Wimplicit-function-declaration]
555 soLoad_SegmentProtect(so);
In file included from ELFLOAD3.c:17:
ELFLOAD3.c:556:90: 笨蛋! 在非结构或联合中请求成员'bias_addr'
556 LOG_INFO(TC_HILIT"成功加载"TC_PINK" %s "TC_CLEAR"@ "TC_KHAKI"%016p"TC_CLEAR, name, so->bias_addr);
logutil.h:69:46: 才...才不会告诉你....: in definition of macro 'LOG_INFO'
69 | #define LOG_INFO(...) log_print(2, func, VA_ARGS)
ELFLOAD3.c:558:7: 杂鱼~你刚刚隐式声明了函数'soLoad_DestroyCleanUp', 这个特性早就被弃用了, 是学某本C语言教科书的杂鱼呢 ~ [-Wimplicit-function-declaration]
558 err0: soLoad_DestroyCleanUp(so);
ELFLOAD3.c: 就...就在那个叫'call_so_init'的函数里! :
ELFLOAD3.c:575:29: 笨蛋! 在非结构或联合中请求成员'init_fcn'
575 if (dyn_objs[idx].so->init_fcn)
ELFLOAD3.c:577:29: 笨蛋! 在非结构或联合中请求成员'init_fcn'
577 dyn_objs[idx].so->init_fcn(_ac, _av, _ep);
ELFLOAD3.c:580:9: 杂鱼~你刚刚隐式声明了函数'soLoad_CallInitArr', 这个特性早就被弃用了, 是学某本C语言教科书的杂鱼呢 ~ [-Wimplicit-function-declaration]
580 soLoad_CallInitArr(dyn_objs[idx].so, _ac, _av, _ep);
ELFLOAD3.c: 就...就在那个叫'call_so_fini'的函数里! :
ELFLOAD3.c:589:9: 杂鱼~你刚刚隐式声明了函数'soLoad_CallFiniArr', 这个特性早就被弃用了, 是学某本C语言教科书的杂鱼呢 ~ [-Wimplicit-function-declaration]
589 soLoad_CallFiniArr(dyn_objs[idx].so);
ELFLOAD3.c:591:29: 笨蛋! 在非结构或联合中请求成员'fini_fcn'
591 if (dyn_objs[idx].so->fini_fcn)
ELFLOAD3.c:593:29: 笨蛋! 在非结构或联合中请求成员'fini_fcn'
593 dyn_objs[idx].so->fini_fcn();
In file included from ELFLOAD3.c:17:
ELFLOAD3.c: 就...就在那个叫'main'的函数里! :
ELFLOAD3.c:693:50: 笨蛋! 在非结构或联合中请求成员'bias_addr'
693 LOG_INFO("load_bias: %016p", dyn_objs[idx].so->bias_addr);
logutil.h:69:46: 才...才不会告诉你....: in definition of macro 'LOG_INFO'
69 | #define LOG_INFO(...) log_print(2, func, VA_ARGS)
ELFLOAD3.c:694:50: 笨蛋! 在非结构或联合中请求成员'entrypoint'
694 LOG_INFO("entry_ptr: %016p", dyn_objs[idx].so->entrypoint);
logutil.h:69:46: 才...才不会告诉你....: in definition of macro 'LOG_INFO'
69 | #define LOG_INFO(...) log_print(2, func, VA_ARGS)
就...就在这个文件里:
ELFLOAD3.c:309:13: 杂鱼~ 'libc_has_inited' defined but not used [-Wunused-function]
309 | static void libc_has_inited(void raw_args, void (*onexit)(void),
ELFLOAD $
整体描述
这是一张竖屏手机端的C语言代码编译报错终端截图,原本严肃的编译器错误提示被替换成了充满二次元风格的吐槽语气:将结构体/联合体成员访问错误调侃为「笨蛋!在非结构或联合中请求成员‘xxx’」,把隐式函数声明警告说成「杂鱼~你刚刚隐式声明了函数‘xxx’,这个特性早就被弃用了,是学某本C语言教科书的杂鱼呢 ~」,还有「才...才不会告诉你....」这类软萌语气的提示,把枯燥的编程编译错误变得趣味十足,充满二次元整活感。
来源说明
该截图是手机终端编译ELFLOAD3.c文件的画面,报错文本是经过魔改的类GCC编译器提示,属于程序员圈子的整活内容,图右下角带有「知乎 @cali5nia」的水印,说明该内容由知乎用户cali5nia发布,这类魔改编译报错的内容常流传于程序员社区、知乎、GitHub等平台。