【发布时间】:2021-07-25 13:05:25
【问题描述】:
我是 Ubuntu 用户,想知道g++ file.cpp -o file 和g++ -c file.cpp 之间的区别。
我知道g++ -c file.cpp 创建了一个目标文件file.o
但是g++ file.cpp -o file 呢?
我已经使用这个命令很长时间了,但不知道作为输出生成的文件(它只是“文件”)。
我必须运行./file 来执行文件
【问题讨论】:
-
虽然可能有点让人不知所措,但the GCC manual 是找到有关其命令行选项问题答案的最佳位置。
-
-c和-o选项包含在 "Options Controlling the Kind of Output" 中。 -
“编译或组装源文件,但不链接。链接阶段根本没有完成”是什么意思。感谢@GM 的帮助
-
@Pratyparty 回复。编译和链接,你会从this post得到一些有用的信息。
-
构建源文件的“自然”方式是生成可执行程序文件。可以选择在中间步骤停止或生成不同类型的输出。例如,您可以使用
-E选项要求 GCC 在预处理后停止;或者使用-S选项停止并仅生成汇编输出;或者在使用-c选项创建目标文件后停止。