gcc - DLDFLAGS 和 LDFLAGS 有什么区别

标签 gcc linker makefile ldflags

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

最佳答案

LDFLAGS通常设置为包含传递给链接器的选项(因此可能包括所需的库)。连同CFLAGS ,这些通常设置为开发人员环境变量和 make 的一部分。将了解它们,因此将积极查看它们是否已设置并将它们传递给编译器。

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

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

关于gcc - DLDFLAGS 和 LDFLAGS 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931770/

相关文章:

c++ - GCC 拒绝在 PowerPC 上对 operator new/delete 发出长时间的调用

c - 是否有 GCC 选项将 foo() 视为 foo(void)?

c++ - 从函数 C++/SFML 加载资源时出现问题

c++ - Mingw32-Make&cmake 3.0

c++ - 在 C++ 中,类型名称的 typeid 总是在编译时求值吗?

c - 在 Debian 上构建 DBD Sybase 的问题

c++ - boost::iostreams::bzip2_compressor 仅在使用 c++0x 时失败

c - 如何快速搜索库中 undefined reference 。

c -/usr/bin/ld : cannot find -lc while compiling with makefile

Makefile:对变量中具有特定扩展名的文件进行操作