C++ ';优化';属性指令被忽略

C++ ';优化';属性指令被忽略,c++,linux,optimization,gcc,attributes,C++,Linux,Optimization,Gcc,Attributes,我有一个项目,通过gcc命令行标志将所有文件的优化设置为“-Os”。但是,我想禁用其中一个源文件中某些方法的优化。为了实现这一点,我尝试为这些方法指定优化属性。然而,gcc表示它在构建过程中忽略了optimize属性。有人知道问题出在哪里吗 class C { public: int __attribute__((optimize("-O0"))) foo(); . . }; 我正在使用gcc版本4.4.3。删除-。这不是必需的(或者可能不是预期的)。您可以使用优化

我有一个项目,通过
gcc
命令行标志将所有文件的优化设置为“-Os”。但是,我想禁用其中一个源文件中某些方法的优化。为了实现这一点,我尝试为这些方法指定优化属性。然而,
gcc
表示它在构建过程中忽略了
optimize
属性。有人知道问题出在哪里吗

class C 
{
public:
    int __attribute__((optimize("-O0"))) foo();
    .
    .
 };

我正在使用gcc版本4.4.3。

删除
-
。这不是必需的(或者可能不是预期的)。

您可以使用优化杂注,如中所述


试过了。但这不会影响结果。通常我只会在源代码中使用pragma指令,而不是在头文件中。它也会忽略
#pragma GCC optimize 0
。@Rajorshi:您需要
#pragma GCC optimize(“O0”)
嗯。我认为GCC也接受前者。无论如何,我尝试了以下方法,但也没有成功:#pragma GCC push#u options#pragma GCC optimize(“O0”)#pragma GCC pop_选项
#pragma GCC push_options
#pragma GCC optimize ("-O0")
int foo() {
  return bar;
}
#pragma GCC pop_options