У меня есть универсальная динамическая библиотека на основе Какао, которая также включает больше статических библиотек, из которых я хочу экспортировать функциональность.Кажется, я не могу сделать последнее без использования файла символов экспорта, и это нормально для меня ... как-то.Я нигде не использую параметр «Символы, скрытые по умолчанию» (GCC_SYMBOLS_PRIVATE_EXTERN, -fvisibility = hidden).Проблема возникла, когда я пытался экспортировать базовый класс из динамической библиотеки, более конкретно при попытке использовать его члены в производных классах, не включенных в библиотеку, и даже более конкретно в 64-разрядной сборке: «Неопределенные символы:» _OBJC_IVAR_$ _PluginBase.fConn "" Мне известны 64-разрядные изменения: http://developer.apple.com/library/mac/#releasenotes/Cocoa/RN-ObjectiveC/_index.html, раздел "Управление доступом к 64-разрядным классам и экземплярам"
И, конечно, все работает, если я добавлю_OBJC_IVAR _ $ _ PluginBase.fConn в файл экспорта ... но только для 64-битной сборки 32-битная не знает о таких вещах: "Неопределенные символы:" _OBJC_IVAR _ $ _ PluginBase.fConn ", на которые ссылается: -exported_symbol [s_list] параметр командной строки "
Единственное решение кажется другим обходным путем: иметь два файла экспорта.Но ... Я не могу использовать «Добавить условие настройки сборки» для параметра EXPORTED_SYMBOLS_FILE: -S.
Есть идеи (кроме использования методов открытого доступа)?