GCC/GNU是否可以指定一种新语言的名称?

GCC/GNU是否可以指定一种新语言的名称?,c,gcc,ld,C,Gcc,Ld,我已经设计了自己的编程语言,我正在为它开发一个编译器。该语言被转换为纯C语言,然后调用gcc,以编译并链接用这种称为Perun的语言编写的程序 Prim-Mangle涉及,类似于它在C++中的方式。我有一个名为perun demangle的实用程序,它可以将损坏的名称转换为人类可读的形式。例如: $ perun-demangle Per_FD3std4priv5posix14FDOutputStream10writeBytes_M3std4priv5posix14FDOutputStream_

我已经设计了自己的编程语言,我正在为它开发一个编译器。该语言被转换为纯C语言,然后调用
gcc
,以编译并链接用这种称为Perun的语言编写的程序

<> Prim-Mangle涉及,类似于它在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'
<>但是,当使用C++代码>代码> G++< /COD>时,链接器理解如何在错误消息中删除C++符号并输出其可读形式。大概是使用
c++filt
实现的


我的问题是:我可以让链接器使用
perun demangle
而不是
c++filt
自动对错误消息中的符号进行demangle吗?

您阅读了所有文档吗?由于GCC和binutils是开源的,您还可以查看链接器的源代码。要找到进行需求的地方应该不太难。如果有对
c++filt
的调用,应该很容易被grep找到。@busybee甚至只是临时移动c++filt二进制文件并用自己的替换。@fugiefire是的,我以前也做过这些黑客。但我往往会忘记,几周后我想知道为什么事情不管用对于快速测试,它是可以的。@thebusybee编写一个bash脚本来为您完成它怎么样?:)@fugiefire可能有一种受支持的方法来调用另一个Demanling过滤器,而且充其量它是有文档记录的。如果一些研究得出了一个稳定的解决方案,我为什么要使用一个可能脆弱的黑客呢?据我所知,这正是OP想要的。