【问题标题】:What's the meaning of gcc '-c' and gcc '-o'? [duplicate]gcc '-c' 和 gcc '-o' 是什么意思? [复制]
【发布时间】:2017-04-02 04:43:16
【问题描述】:

当我创建makefile时,我写了

test: main.o 1.o
  gcc -o test main.o 1.o

main.o: main.c a.h
  gcc -c main.c

1.o: 1.c a.h
  gcc -c 1.c

但我不明白为什么我在第一行使用 -o 而在第二、第三行使用 -c。 它们有什么区别??

【问题讨论】:

  • 您是否尝试阅读 gcc 手册?
  • 您已创建文件。谁知道你为什么这样做?
  • 你为什么要我们解释写了什么?你说我写了,意思是你的手指在键盘上。你为什么写这个?
  • 这是您真正应该在 GCC 文档中查找的信息,而不是在这里询问。编译器标志的页面是这样的:gcc.gnu.org/onlinedocs/gcc/Option-Summary.html
  • 大概,“我写的”真正的意思是“我按照我在网上找到的一个例子,但我没有完全理解它”。

标签: linux gcc makefile putty


【解决方案1】:

这些选项做了非常不同的事情:

  • -c 告诉 GCC 将源文件编译成 .o 目标文件。如果没有该选项,它将默认将代码编译并链接成一个完整的可执行程序,该程序仅在您同时提供所有.c 文件时才有效。要单独编译文件以便稍后链接它们,您需要-c
  • -o 设置 GCC 生成的输出文件的名称。您在链接目标文件以制作完整程序时使用它,默认输出文件名是a.out。如果您不希望您的程序被称为 a.out,您可以使用 -o 指定不同的名称。

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2014-11-02
    • 2021-04-14
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多