Некоторое время назад я обнаружил среду выполнения ObjFW для Objective-C, которая довольно изящна и делает много вещей - и очень маленькая. Но это заставило меня недавно спросить, какие среды выполнения доступны для каких целей - и как лучше всего это узнать? Я хотел бы использовать небольшой скрипт в моей конфигурации, чтобы проверить, могу ли я использовать ObjFW на текущей платформе с текущей установкой clang или gcc.
Итак, есть ли способ получить список доступных сред выполнения Objective-C в GCC или Clang?
решение1
Каждая версия GCC, начиная с 4.0, и практически каждая версия Clang когда-либо поддерживала среду выполнения ObjFW хотя бы частично. Это потому, что среда выполнения ObjFW использует GNU ABI, но добавляет что-то еще поверх этого. Чтобы использовать то, что добавлено поверх, вам нужна версия Clang, которая принимает -fobjc-runtime=objfw. Для возможной проверки см. configure.ac, включенный в ObjFW.
Все это имеет значение только в том случае, если вы планируете использовать среду выполнения без остальной части ObjFW. Если же вы хотите использовать и остальную часть, просто используйте objfw-config: Это сделает все правильно для oyu.
решение2
Это не полный ответ на ваш вопрос, нов документации clangперечислены доступные среды выполнения: macosx, macosx-fragile, ios, watchos, gcc, gnustep и objfw.
На мой взгляд, gnustep, gcc и objfw подходят для всех целей, остальные — только для OS X, iOS и Watch OS (потому что эта среда выполнения специфична для ОС, но это только мое предположение)