省流:
- 1,包含的文件中存在错误,include例如语法错误,include 将会报告错误并停止处理。sinclude
会警告用户,但不会停止整个Makefile的处理。 - 2, sinclude 并不是所有Make实现都支持的标准语法,建议使用 include 来确保兼容性。
- 3,sinclude 对于希望在包含的文件中有错误时继续进行构建的场景非常有用。
展开说说:
在Makefile中,include
和 sinclude
是用来处理包含其他Makefile文件的两个指令。include
是GNU Make的标准语法,而 sinclude
是某些非GNU Make实现中使用的语法。
-
include
:include
是一个标准的GNU Make指令,当它遇到一个无法解析的文件时,它将停止处理并退出。- 如果包含的文件中存在错误,例如语法错误,
include
将会报告错误并停止处理。 include
用于包含Makefile的依赖关系,通常用于扩展Makefile或引入变量和规则。
语法示例:
include otherfile.mk
-
sinclude
:sinclude
是某些非GNU Make实现(如旧版本的FreeBSD Make)中的指令,它即使在包含的文件中有错误时也会继续处理。- 如果包含的文件中有错误,