C/C++ アプリを OS X に移植したいと考えています。
私は Mac を持っていませんが、Linux と Windows を持っています。これのためのツールはありますか?
C/C++ アプリを OS X に移植したいと考えています。
私は Mac を持っていませんが、Linux と Windows を持っています。これのためのツールはありますか?
Linux の場合、ビルド済みの GCC クロス コンパイラがあります (公開されている Apple の変更された GCC ソースから)。
https://launchpad.net/~flosoft/+archive/cross-apple
2015 年の更新
http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311
Embarcadero の RadStudio は、Windows での OSX/iOS/Android アプリの構築もサポートしています。
これらすべてのオプションでは、アプリケーションをテストするために実際の mac/i デバイスが必要です。
Linux から OS X (10.4-10.9) を対象とするOSXCrossというプロジェクトを作成しました。
現在、clang
3.2 から 3.8 (トランク) までをサポートしています (dist を使用できますclang
)。
さらに、最新のバニラGCC
(4.6+) もビルドできます。
clang
LTO は、との両方でも同様に機能しGCC
ます。
現在、ld64-242 で cctools-870 を使用しています。
Mac 用のクロス コンパイルのセットアップを支援するために作成されたスクリプトがいくつかあるようです。それらがどれほど優れているか、またはプロジェクトにどの程度適用できるかはわかりません。ドキュメントでは、10.4 のクロスコンパイルに関するこれらの手順と、10.5 のクロスコンパイルに関するこれらの手順を参照しています。これらの手順は、スクリプトがニーズにどれだけ適合するかによって、スクリプトよりも役立つ場合があります。
プログラムがフリーまたはオープン ソース ソフトウェアの場合は、代わりにMacPorts portfile (ドキュメントはこちら) を作成し、ユーザーが MacPorts を使用してプログラムをビルドできるようにすることをお勧めします。Mac OS X にポータブル フリーまたはオープン ソース ソフトウェアをインストールするには、一般にこれが推奨される方法です。 Mac でテストする必要があります)。
複数のプラットフォームで何かを動作させようとしているときは、目的のプラットフォームでコンパイル/実行/統合/テストする必要があります。一方のプラットフォームでコンパイル/実行してから、「もう一方のプラットフォームでも同じように動作するはずです」と言うことはできません。
Javaのような本当に優れたクロスプラットフォーム言語を使用しても、他のプラットフォームではまったく同じように機能しないという問題が発生します。
時間/生産性/複数のプラットフォームで迅速に反復する能力を尊重する唯一の方法は、他のプラットフォームのVMを使用することです。
デュアルブートのような他の解決策や私が言及していない解決策がありますが、それらは私の生産性/時間を尊重していないことがわかりました。
例としてデュアルブートを取り上げます。
BAMは私の時間の30分になります、そして私は何も生産的なことをしていません。
Apple の開発は、それ自体が奇妙な獣です。OS X は、GCC のポートを使用して、いくつかの変更を加えて「適切」にします。理論的には、Apple GCC とツールチェーン、および Apple カーネルとライブラリ ヘッダーへのソースを使用して、Windows マシン上でクロス コンパイラを構築することが可能です。
なぜあなたがこの道を進みたいのか、私には理解できません。600 ドルからの安価な Mac mini を手に入れることができます。クロス コンパイラを適切に機能させるために費やす時間 (特に、Unix ツール用の Windows ホストを使用する場合) は、とにかく 600 ドル以上の費用がかかるでしょう。
アプリのクロスプラットフォームを Qt、wxWidgets、または FLTK に対応させたい場合。いずれも、基本コードへの最小限の変更でクロスプラットフォーム サポートを提供します。少なくともその方法で必要なのは、アプリをコンパイルする Mac を見つけることだけです。Mac への SSH アクセスを許可することを気にしない技術志向の友人がいる場合、それはそれほど難しいことではありません。
何らかの方法で OS X が必要になることは間違いありません。Mac を所有していない場合でも、いくつかの代替手段を試すことができます。
mach-o 用にクロス コンパイルするにはツールチェーンが必要ですが、それがあったとしても、開発に使用できる Apple ライブラリはありません。残念ながら、それらなしでどのように移植できるかはわかりません。
ネットでこの小さなドキュメントを見つけました: http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt
これは、あなたが望むものを正確に説明しています。私自身も興味がありますが、まだテストしていません (10 分前に見つかりました)。ただし、ドキュメントは良さそうです。
いくつかのクロスコンパイラーのセットアップがありますが、それらのほとんどすべては、distccスタイルの分散コンパイル用です。私の知る限り、実際にMacがなければ、Macプラットフォームを直接ターゲットにする方法はありません。QTやwxWidgetsに頼らずに入手できる最も近いものは、GNUStepなどを使用したOpenStepですが、これは真のCocoaプラットフォームではなく、非常に近いものです。
短い答えは一種です。QTなどのクロスプラットフォーム ライブラリを使用する必要があります。ある OS で開発し、他の OS の Makefile を生成できる、QT Creator のような IDE があります。クロス プラットフォーム開発の詳細については、このポッドキャストのクロス プラットフォーム エピソードをチェックしてください(シリーズはまだ終わっていません。新しいエピソードは毎週公開されているようです)。
他の回答が説明しているように、おそらく Windows または Linux 上の Mac 用にコンパイルできますが、アプリケーションをテストすることはできないため、プロのプログラミングを行っている場合、または仕事をしている場合は、おそらく Mac に 600 ドルを費やす必要があります。オープンソース ソフトウェアについては、Mac を使用している開発者を見つけてください。