如果不存在必需的标志,则编译失败

pal*_*ogt 12 c c++ gcc

我有一些传统代码需要传入某些gcc标志.我可以为这些标志添加预处理器检查吗?

例如,假设我需要-fno-strict-aliasing,我可以这样做:

#ifndef _FNO_STRICT_ALIASING
   #error -fno-strict-aliasing is required!
#endif
Run Code Online (Sandbox Code Playgroud)

Chr*_*odd 6

您可以使用

#pragma GCC optimize "no-strict-aliasing"
Run Code Online (Sandbox Code Playgroud)

使用该标志编译文件(覆盖命令行中指定的内容).你也可以使用

__attribute__((optimize("no-strict-aliasing")))
Run Code Online (Sandbox Code Playgroud)

将标志应用于源文件中的单个函数...