Кажется, есть 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. Что я делаю неправильно?