Tim*_*Tim 50 c++ compiler-construction ubuntu g++
我刚刚在我的Ubuntu上找到了两个不同的C++编译器:/ usr/bin/g ++和/ usr/bin/c ++.我不熟悉后者,但是man c ++只是跳到了gcc的联机帮助页面.我想知道它们作为C++编译器的区别是什么?
感谢致敬!
Mic*_*elM 55
这是典型的Ubuntu符号链接混乱.
如果你ls -l /usr/bin/c++,你会发现它实际上是一个象征性的链接.至:
/etc/alternatives/c++
Run Code Online (Sandbox Code Playgroud)
反过来,这也是一个符号链接:
/usr/bin/g++
Run Code Online (Sandbox Code Playgroud)
因此,在Ubuntu系统上,c ++ 是 g ++.链接间接背后的原因是有多个包可以提供c ++编译器(例如不同版本的g ++).你会在Ubuntu上看到很多.例如,qmake是/ etc/alternatives中文件的链接,它是(在我的系统上)返回/ usr/bin/qmake-qt3的链接.
unk*_*ulu 28
c++是C++系统上编译器的标准名称.
在GNU系统上,你几乎肯定安装了GCC(GNU编译器集合),其中包括一个C++名为g++('g'代表GNU)的编译器.但是要兼容POSIX,他们也会安装这个编译器c++,有时它c++是一个符号链接,g++有时它是一个硬链接,有时它只是安装两次相同的文件.
对于像FreeBSD或NetBSD这样的其他系统,情况可能并非如此.这些系统可能没有安装GCC(和其他GNU东西).
在我的系统上,这两个文件完全相同:
% diff `which c++` `which g++`
% echo $?
0
Run Code Online (Sandbox Code Playgroud)
这意味着c++至少调用相同的编译器,但理论上它可以不同地解释某些命令行选项或具有一些不同的默认值.拥有更多知识的人可以自由地扩展这方面的答案.
Sop*_*ert 11
在我的机器上,c++是一个链接:
$ readlink /usr/bin/c++
/etc/alternatives/c++
$ readlink /etc/alternatives/c++
/usr/bin/g++
Run Code Online (Sandbox Code Playgroud)
所以c++只是一个链接g++.
g++ 是 gnu c++ 编译器,其中 c++ 是系统 c++ 编译器,在 ubuntu 的情况下,C++ 是指向 g++ 的链接,但是在另一个系统中,它很可能是指向非 gcc 编译器的链接。正如其他人所说的vi vs vim。仅仅因为系统上存在指向 vi 的链接并不意味着它的 vim 可以是任何 vi 克隆。
| 归档时间: |
|
| 查看次数: |
29662 次 |
| 最近记录: |