我正在使用gcc,我正在分发一个可能与某些第三方代码一起使用的目标文件。我有一些看起来像这样的东西:
void fn3rdParty(int bar) __attribute ((weak));
void fn(void) {
if(fn3rdParty)
fn3rdParty(SOME_ENUM);
}
其中SOME_ENUM是枚举,由第三方代码定义(如果存在)。我尝试将SOME_ENUM声明为弱int,但gcc抱怨该类型已重新定义。我想知道是否有办法解决这个问题? (我想避免将一个.o文件用于此软件,而另一个文件则不使用)。
约翰