我有下面的C代碼:如何擺脫gcc彙編程序警告「在C代碼中爲.init設置不正確的段屬性」?
struct myStruct_t
{
const char m_name[60];
const uint32_t m_data;
};
const struct myStruct_t myStruct
__attribute__((__aligned__(64), section(".init"))) =
{
"myName",
(uint32_t)&someOtherStruct
};
當我在GCC 4.1.1(用於PS3)編譯,我得到警告:
1>c:/t/ccy6.s: Assembler messages:
1>c:/t/ccy6.s(106): Warning: setting incorrect section attributes for .init
彙編代碼的預警點是「.section僞」的條款:
.section .init,"aw",@progbits
.align 6
.type myStruct , @object
.size myStruct , 64
myStruct :
.ascii "myName"
.long someOtherStruct
它不喜歡的標誌的‘W’(寫的)一部分,因爲在的.init的東西是,在所有可能的地方‘常量’只讀沒有按不要強迫編譯器不要吐出「w」。我怎麼能告訴編譯器「不,真的,這是const,我不是在開玩笑」?
您使用的是哪個版本的GCC?這給我沒有警告與海灣合作委員會3.4.5 – 2009-04-13 21:30:35
4.1.1(對於PS3)..更新OP來反映這一點。好的電話,謝謝。 – 2009-04-13 21:48:22