可以使GCC / GNU ld分解新语言的名称吗?

时间:2019-08-25 02:28:21

标签: c gcc ld

我已经设计了自己的编程语言,并且正在为它开发编译器。该语言被转换为普通C语言,然后调用gcc来编译和链接以这种语言制作的程序,称为Perun。

涉及到名称修饰,类似于在C ++中的用法。我有一个名为perun-demangle的实用程序,可以将错误的名称转换为易于理解的形式。示例:

$ perun-demangle Per_FD3std4priv5posix14FDOutputStream10writeBytes_M3std4priv5posix14FDOutputStream_0_AU8
std.priv.posix.FDOutputStream.writeBytes(std.priv.posix.FDOutputStream, byte_t[])

如果我们尝试链接程序,但是缺少该函数的定义,则gcc(由Perun编译器调用以链接程序)仅输出:

undefined reference to `Per_FD3std4priv5posix14FDOutputStream10writeBytes_M3std4priv5posix14FDOutputStream_0_AU8'

但是,当使用g++链接C ++代码时,链接程序会理解如何分解C ++符号并在错误消息中输出其易于理解的形式。大概是使用c++filt来完成的。

我的问题是:我可以以某种方式使链接器使用perun-demangle而不是c++filt来自动整理错误消息中的符号吗?

0 个答案:

没有答案