Кажется, есть 3 способа сообщить GCC о слабой ссылке на символ:
-
__attribute__((weak_import)) -
__attribute__((weak)) -
#pragma weak symbol_name
Никто из них не работает для меня:
#pragma weak asdf
extern void asdf(void) __attribute__((weak_import, weak));
...
{
if(asdf != NULL) asdf();
}
Я всегда получаю ошибку ссылки следующим образом:
Undefined symbols:
"_asdf", referenced from:
_asdf$non_lazy_ptr in ccFA05kN.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Я использую GCC 4.0.1 на OS X 10.5.5. Что я делаю неправильно?