编译器中的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