C++编译器与C++编译器相比有什么区别?

"cpp"和"c++"编译器在Ubuntu上有什么区别?

我一直在试图搞清楚Ubuntu(以及Linux发行版)中使用的各种编译器同义词,以便决定使用哪个最优雅。使用"file"命令跟随符号链接很快就可以看到"cc"链接到"gcc",而"c++"链接到"g++"。

然而,"cpp"和"c++"并没有被符号链接,而是链接到两个不同的ELF文件,使用"cmp"命令显示它们是不相似的,因此它们也不是硬链接。有谁知道这些编译器之间的不同的重要性吗?


2cpp是一个预处理器,而不是一个编译器 - 请参阅man cpp - steeldriver
1个回答

@steeldriver:谢谢,我刚刚自己找到了答案。"cpp" 是 GNU 预处理器。它输出经过预处理的源代码。

我曾对 cpp --helpc++ --help 产生完全相同的文本感到困惑 — 这表明 cpp 是一个完整的编译器,但实际上它并不是。而且我之前一直以为 GNU 预处理器是 "gpp"。

事实证明 "cpp" 就是 GNU 预处理器 — 而 "gpp" 则代表通用预处理器,似乎是另外一种不同的东西。