У меня есть библиотека, которая использует встроенную функцию C, и компилируется просто отлично. Когда другая библиотека ссылается на эту библиотеку, она все еще компилируется в порядке. Но если фактическое приложение ссылается на библиотеку, оно не скомпилируется, говоря, что имя _functionNameHere (да, имя функции, начинающееся с подчеркивания) - символ не найден.
Если я удаляю встроенный спецификатор, он все компилируется отлично. Но пока функция встроена внутри библиотеки, приложение не может скомпилировать!
Любые идеи относительно того, почему это?
Я знаю много о компиляторах, но новичок в Objective-C, и все, что я знаю об этом, - не что иное, как просвещенные догадки. И даже таким образом я не могу думать о причине, что он будет вести себя таким образом.
Дело в том, что встроенная функция INLINE, что означает, что никакого символа вообще нет, он скомпилирован внутри строки, где бы он ни назывался, и приложение-ссылка не должно даже знать, что оно когда-либо существовало. Это правда, если встроенная функция всегда встроена в систему и является частной для библиотеки, и нет специальной конфигурации компилятора, которая предотвращает inlining, и все они верны.
Итак, кто угодно, приходите и укажите пальцем на то, что я делаю/думая неправильно...
Спасибо: -)