我有一個項目,通過gcc
命令行標誌爲所有文件的優化設置爲「-Os」。但是,我想禁用其中一個源文件中某些方法的優化。爲了做到這一點,我試圖爲這些方法指定優化屬性。但是,gcc
表示在構建期間忽略optimize
屬性。有人知道問題是什麼嗎?忽略'optimize'屬性指令
class C
{
public:
int __attribute__((optimize("-O0"))) foo();
.
.
};
我使用的是gcc版本4.4.3。
我有一個項目,通過gcc
命令行標誌爲所有文件的優化設置爲「-Os」。但是,我想禁用其中一個源文件中某些方法的優化。爲了做到這一點,我試圖爲這些方法指定優化屬性。但是,gcc
表示在構建期間忽略optimize
屬性。有人知道問題是什麼嗎?忽略'optimize'屬性指令
class C
{
public:
int __attribute__((optimize("-O0"))) foo();
.
.
};
我使用的是gcc版本4.4.3。
刪除-
。這不是必需的(或可能不是預期的)。
您可以使用優化編譯指示,詳見 http://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas
#pragma GCC push_options
#pragma GCC optimize ("-O0")
int foo() {
return bar;
}
#pragma GCC pop_options
試了一下。但這並不影響結果。 – 341008 2010-08-23 10:49:17
通常我只使用pragma指令,但是在源代碼中,而不是頭文件中。 – leppie 2010-08-23 10:53:38
它也忽略'#pragma GCC optimize 0'。 – 341008 2010-08-23 10:56:35