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