GCC/Clang: 利用可能な ObjC ランタイム

GCC/Clang: 利用可能な ObjC ランタイム

少し前に、Objective-C 用の ObjFW ランタイムを発見しました。これは非常に優れていて、多くの機能があり、非常に小型です。しかし、最近、どのランタイムがどのターゲットで使用できるのか、また、それを最もよく調べるにはどうすればよいのか疑問に思いました。現在のプラットフォームで、現在の clang または gcc インストールを使用して ObjFW を使用できるかどうかをテストするために、構成内の小さなスクリプトを使用したいと思います。

では、GCC または Clang で利用可能な Objective-C ランタイムを一覧表示する方法はありますか?

答え1

4.0 以降のすべての GCC バージョンと、基本的にすべての Clang バージョンは、少なくとも部分的に ObjFW ランタイムをサポートしています。これは、ObjFW ランタイムが GNU ABI を使用するものの、その上にさらに追加されているためです。追加されたものを使用するには、-fobjc-runtime=objfw を受け入れる Clang バージョンが必要です。確認方法については、ObjFW に含まれている configure.ac を参照してください。

これはすべて、ObjFW の残りの部分なしでランタイムを使用する予定の場合にのみ関連します。残りの部分も使用したい場合は、objfw-config を使用するだけです。これにより、oyu に対して適切な処理が行われます。

答え2

これはあなたの質問に対する完全な答えではありませんが、clangドキュメント内使用可能なランタイムがリストされています: macosx、macosx-fragile、ios、watchos、gcc、gnustep、objfw。

私の考えでは、gnustep、gcc、objfw はすべてのターゲットに適していますが、それ以外は OS X、iOS、Watch OS のみに適しています (これは OS 固有のランタイムであるためですが、これはあくまで私の提案です)。

関連情報