用g++编译cpp文件

compiling cpp files with g++

我是 Ubuntu 用户,想知道 g++ file.cpp -o fileg++ -c file.cpp 之间的区别。

我知道g++ -c file.cpp创建了一个目标文件,file.o

但是 g++ file.cpp -o file 呢? 我已经使用这个命令很长时间了,但不知道作为输出生成的文件(它只是“文件”)。
我必须 运行 ./file 来执行文件

-o 仅表示“输出”,并允许您选择输出文件的名称。如果需要,仍然完全允许同时指定 -c-o

简单地说,cc 用于命名最终链接的可执行文件 a.out 由于历史原因,并且在使用 -c 主要用于编译时仍将继续这样做一段时间多个零件从头开始拼装,保留原名

这就是为什么在编译最终可执行文件时比其他类型的编译文件更经常看到 -o 的原因。

使用-o您可以指定输出文件名。 在你的例子中g++ file.cpp -o file表示:编译file.cpp文件.

如果没有 -o,您的源代码将编译为 a.out 文件。

如果您担心 g++ 中的其他选项,您可以随时使用 g++ --help,它会向您显示所有参数及其含义。例如-o 意思来自 帮助:

-o < file > : Place the output into < file >

g++ file.cpp -o file 生成一个可执行文件(在 Linux 上通常没有扩展名)。 -o 指定输出文件名。如果您只执行 g++ file.cpp,文件将被命名为 a.out.

相当于 g++ -c file.cpp 后跟 g++ file.o -o file,除了 file.o 没有保存在任何地方。

请注意,您也可以将 -o <filename>-c 一起使用,以更改目标文件的名称,