Wil*_*ell 6 c c++ build-process compilation
#define _BSD_SOURCE或设置CPPFLAGS = -D_BSD_SOURCE更好吗?
在我看来,如果一段源代码依赖于特定的标准,最好用#define在代码本身中明确地拼写出来.但是,很多评论都建议在编译行上指定标准更合适.从源代码中省略标准并仅在编译时指定它有什么好处?
如果在源中指定了定义,则存在一个风险,即相同的头文件可以包含在多个源文件(转换单元)中,但具有不同的预处理器定义,这可能导致一个定义规则违规,这通常很难调试.
通过为整个项目而不是在单个源文件中指定定义,可以最大限度地减少此类定义规则违规的可能性.
此外,如果需要添加新的定义,则只更改一个makefile,而不是所有源文件.