我是 Ubuntu 用户,想知道 g++ file.cpp -o file
和 g++ -c file.cpp
之间的区别。
我知道 g++ -c file.cpp
创建了一个目标文件 file.o
但是g++ file.cpp -o file
呢?
我已经使用这个命令很长时间了,但不知道作为输出生成的文件(它只是“文件”)。
我必须运行 ./file
才能执行文件
答案 0 :(得分:1)
您可以使用 -o
指定输出文件名。
在你的例如g++ file.cpp -o file
表示:将 file.cpp 编译为 file。
如果没有 -o
,您的源代码将编译为 a.out 文件。
如果您担心 g++ 中的其他选项,您可以随时使用 g++ --help
,它会显示所有参数及其含义。例如-o
来自 help 的含义:
-o
答案 1 :(得分:0)
-o
仅表示“输出”并允许您选择输出文件的名称。如果需要,完全允许同时指定 -c
和 -o
。
简单地说,cc
用于命名最终的链接可执行文件 a.out
出于历史原因,并且仍然会继续这样做一段时间,当使用 -c
主要是为了编译多个部分时在从头组装之前,从而保留原来的名称。
这就是为什么在编译最终可执行文件时比其他类型的编译文件更频繁地看到指定的 -o
。
答案 2 :(得分:0)
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
一起使用,以更改目标文件的名称,