Я пытаюсь создать разделяемую библиотеку на MA C, используя следующий простой пример на https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/CreatingDynamicLibraries.html
Я действительно перебил одну функцию, чтобы попытаться получить функцию, экспортируемую clang в библиотеку. Мой исходный код выглядит следующим образом:
#define EXPORT __attribute__((visibility("default")))
EXPORT
void foo(){
int x = 1 + 3;
}
моя строка компиляции
clang -dynamiclib lib.c -current_version 1.0 -compatibility_version 1.0 -fvisibility=hidden -o lib.dylib
Это прекрасно компилируется и создает lib.dylib на моем macbook. Теперь я ожидаю, что инструмент nm покажет мой экспорт foo (), но метод foo не выставлен
nm -gu lib.dylib
возвращает только
dyld_stub_binder
Я бился головой об этом день, и это не имеет смысла. Кто-нибудь знает, что не так с этим подходом.