1. ホーム
  2. オブジェクティブC

[解決済み】Windows版Objective-C

2022-04-06 02:40:54

質問

WindowsプラットフォームでObjective-Cを書くには、どのような方法があるでしょうか?

Cygwinとgcc?どうにかしてVisual Studioに統合する方法はないでしょうか?

また、Windows SDKをこのようなものにリンクして使用する方法について、何か提案はありますか?アセンブリを書き、Windows DLLにリンクすることで、これらの呼び出しにアクセスできることは知っていますが、ググって断片的な指示を得なければ、どのようにすればいいのかわかりません。

このようなことを行う、または説明するための良いオンラインまたは書籍リソースをご存知の方はいらっしゃいませんか?

解決方法は?

前の2つの答えを発展させると、もしあなたがObjective-Cだけで、Cocoaフレームワークのどれも必要ないのなら、gccはどのプラットフォームでも動きます。Cygwinを通して使うこともできますし、MinGWを入手することもできます。しかし、もしあなたがCocoaフレームワーク、あるいは少なくともそれらの合理的なサブセットが欲しいのであれば、GNUStepとCocotronがあなたの最善の選択です。

CocotronはCoreGraphicsやCoreDataのようなGNUStepにはないものをたくさん実装していますが、特定のフレームワークで彼らの実装がどれだけ完全であるかは保証できません。彼らの目的はCocotronをOS Xの最新版に対応させることで、どんなOS XのプログラムでもWindows上で実行できるようにすることです。GNUStepは通常gccの最新版を使うので、Objective-C++のサポートとObjective-C 2.0の機能の多くも追加しています。

GNUStepでそれらの機能をテストしたことはありませんが、十分に新しいバージョンのgccを使用していれば、それらを使用することができるかもしれません。数年前、私はGNUStepでObjective-C++を使うことができませんでした。しかし、GNUStepは、ほぼすべてのプラットフォームからコンパイルすることができます。Cocotronは非常にmac中心のプロジェクトです。他のプラットフォームでもコンパイルは可能でしょうが、XCodeのプロジェクトファイルが付属しており、makefileは付属していませんので、OS Xでしかそのフレームワークをコンパイルできません。基本的に、CocotronのためにWindowsの開発環境をセットアップすることは可能でしょうが、GNUStepのためにセットアップするほど簡単ではありませんし、自分自身でやることになります。

ちなみに、ココトロンはMITライセンスで、GNUStepはLGPLライセンスです。