详解Makefile中这一句代码:MAKEFLAGS += -rR --no-print-directory
时间: 2023-06-11 11:04:26 浏览: 114
这一句代码是Makefile文件中的变量定义。MAKEFLAGS是一个特殊的变量,用来设置Make工具的一些标志。这个变量有三个选项:
- "-r"选项表示如果Make命令被中断,只有当又执行了一遍命令后,Make才会重新开始处理未完成的任务;
- "-R"选项表示如果一个依赖文件在更新时间上比目标文件更新得早,但目标文件的内容并没有改变,Make依然会重新生成目标文件;
- "--no-print-directory"选项表示在进行子目标的make时,不打印出子目录名称。
这些选项可以帮助Make工具更加高效、准确地进行编译任务的处理。
相关问题
LDFLAGS := -lpthread -lrt -static -pthread -fno-strict-aliasing LDFLAGS += -lm
这是一个 Makefile 中的语句,用于指定链接器的选项。具体来说,LDFLAGS 变量被赋值为 "-lpthread -lrt -static -pthread -fno-strict-aliasing",表示需要使用这些选项来链接程序。其中,"-lpthread" 和 "-pthread" 选项表示链接 POSIX 线程库;"-lrt" 选项表示链接实时库;"-static" 选项表示链接静态库;"-fno-strict-aliasing" 选项表示关闭类型别名检查。这些选项可以根据需要进行添加或删除。在这个语句中,还使用了 "+=" 运算符,将 "-lm" 选项追加到 LDFLAGS 变量的值中,表示链接标准数学库。因此,这个语句的作用是指定链接器的选项,从而控制程序的链接行为。
makefile中的CFLAGS += -g -O2
CFLAGS是一个makefile中的变量,用于指定编译器的选项。在这个例子中,CFLAGS被设置为-g -O2,其中-g表示生成调试信息,-O2表示启用优化。这意味着编译器将使用优化选项来生成更快、更有效的代码,并在生成的可执行文件中包含调试信息,以便在调试时进行跟踪。