C++ 编译器(和链接器)的可移植名称

C++ 编译器(和链接器)的可移植名称

cc 是 C 编译器的 POSIX 名称。 C++ 编译器(和链接器)有通用名称吗?请注意,g++还添加了一些库,在使用普通 gcc 或 ld 时不会包含这些库。

答案1

POSIX C 编译器前端是现在c99;cc广泛可用但不能保证。 POSIX 没有指定任何与 C++ 相关的内容,因此您在那里找不到调用 C++ 编译器和链接器的标准化命令。

常见做法(参见示例GNU 使) 是依赖于CCCXX变量。在 GNU 的情况下,它们的默认值分别是cc和; g++BSD 倾向于使用ccand c++(参见示例OpenBSD的配置)。链接器通过编译器驱动程序访问,而不是显式调用。

答案2

至于 Linux,我在过去二十年中看到的大多数 Makefile 都只使用gcc/ g++。当有人费心使用真正的链接器而不是 GCC 时,他们通常会指定ld.我大概见过cc一次。

cc大多数 Linux 发行版确实提供了从到 的符号链接gcc,但如果您删除 GCC 并安装 clang,则它们不会。

不知道它是否可移植,例如 FreeBSD 最近迁移到 Clang/LVM,其他 BSD 继续使用 GCC,Mac OS 也使用 Clang。 Android有自己的工具链。

我没有使用过任何其他 Unix,所以没有评论。

您的用例是什么?请编辑您的问题并提供更多详细信息。

相关内容