编译器中的weak属性

多个目标文件中含有相同名字全局符号的定义,那么这些目标文件链接的时候将会出现符号重复定义的错误,这样可以在其中的一个符号前加上weak属性,将其定义为弱符号,就不再与另外的全局符号冲突。

不同编译器的定义方式:
/// Weak attribute
#if defined   ( __CC_ARM   )
    #define WEAK __attribute__ ((weak))
#elif defined ( __ICCARM__ )
    #define WEAK __weak
#elif defined (  __GNUC__  )
    #define WEAK __attribute__ ((weak))
#endif

 参考资料:
1、http://infocenter.arm.com/help/index.jsp?topic= /com.arm.doc.dui0348bc/Cacdgifc.html
2、http://www.cnblogs.com/kernel_hcy/archive/2010/01/27/1657411.html

 

 

Posted by jie.lee 2010年6月22日 00:42