C标准没有规定编译器应如何在目标文件中生成C函数的名称。似乎GCC兼容的前端只是通过下划线添加C函数的名称。 Microsoft编译器使用不同的策略。
但是,很多语言都可以调用C函数(Rust,Go等)。 我假设开发人员可以访问一些文档,解释不同操作系统上不同编译器如何翻译C符号。
是否有一些公开的网站/文档/ RFC记录了不同编译器(GCC,Visual C ++等)或操作系统的这一点?
编辑:在名称管理部分的此页面http://www.iecc.com/linker/linker05.html上,会给出简要记录。在这篇文章:What is the reason function names are prefixed with an underscore by the compiler?,我们谈论一个简单的约定。这条规则是否曾在某些编译器的文档中写过?