【问题标题】:what's the difference between DLDFLAGS and LDFLAGSDLDFLAGS 和 LDFLAGS 有什么区别
【发布时间】:2012-02-14 10:47:15
【问题描述】:

一个简单的问题。我在示例 Makefile 中找到了“DLDFLAGS”和“LDFLAGS”。使用的编译器是 gcc。看起来它们都用于链接器。我想知道它们之间有什么区别。

【问题讨论】:

  • 我猜可能是动态链接器标志。我在网上找不到准确的信息。你能告诉我们DLDFLAGS的值是多少吗?

标签: gcc linker makefile ldflags


【解决方案1】:

LDFLAGS 通常设置为包含传递给链接器的选项(因此可能包括所需的库)。与CFLAGS 一起,这些通常设置为开发人员环境变量的一部分,make 会知道它们,因此会主动查看它们是否已设置并将它们传递给编译器。

例如,如果我在我的环境中将CFLAGS 设置为-O2 -Wall,那么如果我在没有Makefile 的情况下键入make hello,make 将自动调用编译器为gcc -O2 -Wall hello.c -o hello.o。然后它会以类似的方式调用链接器,将LDFLAGS 中的标志添加到命令行。

Makefile 可以显式覆盖 LDFLAGSCFLAGS

另一方面,DLDFLAGS 不是众所周知/定义的变量,因此它可能特定于特定的 Makefile。您必须阅读 Makefile 以了解它的使用方式。例如,如果设置了LDFLAGS,它可能会定义要使用的链接器标志 - 请阅读 Makefile 以确定。

【讨论】:

    【解决方案2】:

    DLDFLAGS 不只是一个定义名为“LDFLAGS”的宏的预编译器标志吗?

    来自 gcc 手册:

    -D名称

    Predefine name as a macro, with definition 1
    

    【讨论】:

      猜你喜欢
      • 2015-02-23
      • 1970-01-01
      • 2019-11-19
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      相关资源
      最近更新 更多