【发布时间】:2021-12-12 07:16:35
【问题描述】:
假设我们有一个名为 hello.cpp 的简单 c++ 文件,它打印“Hello World!”。
我们通常使用g++ hello.cpp 创建可执行文件。当我尝试执行命令c++ hello.cpp 时,它成功创建了可执行文件。它不应该抛出一个错误,说没有可用的 c++ 命令吗?并建议我们使用 g++?
我尝试在终端上运行man c++,这会打开 GNU C 项目页面。那么,终端是否在内部将我们的c++ hello.cpp 替换为g++ hello.cpp?它不应该这样做吗?
其他信息:
同样,如果我有一个打印“Hello World!”的hello.c 程序。当我在命令行上执行c hello.c 时,我得到了错误:
$ c hello.c
c: command not found
这是意料之中的,因为我们必须使用gcc hello.c。为什么c++ hello.cpp 没有出现类似的错误?
【问题讨论】:
-
为了方便起见,
c++命令通常是指向g++的硬链接。cc和gcc同样链接。 -
那么,这是操作系统创建者通常会做的事情吗?而 GNU 项目与此没有任何联系?
-
这要么是包创建者(他们制作你安装的包)的决定,要么可能是 GCC 项目本身作为构建应用程序的一部分。操作系统本身并不会真正了解这一点。