80

C/C++ アプリを OS X に移植したいと考えています。

私は Mac を持っていませんが、Linux と Windows を持っています。これのためのツールはありますか?

4

11 に答える 11

50

Linux の場合、ビルド済みの GCC クロス コンパイラがあります (公開されている Apple の変更された GCC ソースから)。

https://launchpad.net/~flosoft/+archive/cross-apple

2015 年の更新

  1. 長い年月を経て、業界標準の IDE が OSX/iOS/Android をサポートするようになりました。

http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/311

  1. Embarcadero の RadStudio は、Windows での OSX/iOS/Android アプリの構築もサポートしています。

  2. トーマスによるこの回答は、クロスコンパイルツールも提供します。

これらすべてのオプションでは、アプリケーションをテストするために実際の mac/i デバイスが必要です。

于 2012-04-26T21:07:13.490 に答える
32

Linux から OS X (10.4-10.9) を対象とするOSXCrossというプロジェクトを作成しました。

現在、clang3.2 から 3.8 (トランク) までをサポートしています (dist を使用できますclang)。
さらに、最新のバニラGCC(4.6+) もビルドできます。

clangLTO は、との両方でも同様に機能しGCCます。

現在、ld64-242 で cctools-870 を使用しています。

https://github.com/tpoechtrager/osxcross

于 2013-11-10T15:06:33.307 に答える
24

Mac 用のクロス コンパイルのセットアップを支援するために作成されたスクリプトがいくつかあるようです。それらがどれほど優れているか、またはプロジェクトにどの程度適用できるかはわかりません。ドキュメントでは、10.4 のクロスコンパイルに関するこれらの手順と、10.5 のクロスコンパイルに関するこれらの手順を参照しています。これらの手順は、スクリプトがニーズにどれだけ適合するかによって、スクリプトよりも役立つ場合があります。

プログラムがフリーまたはオープン ソース ソフトウェアの場合は、代わりにMacPorts portfile (ドキュメントはこちら) を作成し、ユーザーが MacPorts を使用してプログラムをビルドできるようにすることをお勧めします。Mac OS X にポータブル フリーまたはオープン ソース ソフトウェアをインストールするには、一般にこれが推奨される方法です。 Mac でテストする必要があります)。

于 2009-03-29T01:56:06.473 に答える
6
  1. VMwarePlayer」を入手
  2. MacOSXvmイメージ」を取得します
  3. 新しいOSでコードをコンパイル/デバッグ/統合してテストし、すべてが機能することを確認します

複数のプラットフォームで何かを動作させようとしているときは、目的のプラットフォームでコンパイル/実行/統合/テストする必要があります。一方のプラットフォームでコンパイル/実行してから、「もう一方のプラットフォームでも同じように動作するはずです」と言うことはできません。

Javaのような本当に優れたクロスプラットフォーム言語を使用しても、他のプラットフォームではまったく同じように機能しないという問題が発生します。

時間/生産性/複数のプラットフォームで迅速に反復する能力を尊重する唯一の方法は、他のプラットフォームのVMを使用することです。

デュアルブートのような他の解決策や私が言及していない解決策がありますが、それらは私の生産性/時間を尊重していないことがわかりました。

例としてデュアルブートを取り上げます。

  1. OS1で変更を加えます
  2. OS2で再起動します
  3. OS1で何かを忘れる
  4. OS1で再起動します
  5. OS1で変更を加える
  6. OS2で再起動します...もう一度..。

BAMは私の時間の30分になります、そして私は何も生産的なことをしていません。

于 2009-03-29T14:24:08.190 に答える
4

Apple の開発は、それ自体が奇妙な獣です。OS X は、GCC のポートを使用して、いくつかの変更を加えて「適切」にします。理論的には、Apple GCC とツールチェーン、および Apple カーネルとライブラリ ヘッダーへのソースを使用して、Windows マシン上でクロス コンパイラを構築することが可能です。

なぜあなたがこの道を進みたいのか、私には理解できません。600 ドルからの安価な Mac mini を手に入れることができます。クロス コンパイラを適切に機能させるために費やす時間 (特に、Unix ツール用の Windows ホストを使用する場合) は、とにかく 600 ドル以上の費用がかかるでしょう。

アプリのクロスプラットフォームを Qt、wxWidgets、または FLTK に対応させたい場合。いずれも、基本コードへの最小限の変更でクロスプラットフォーム サポートを提供します。少なくともその方法で必要なのは、アプリをコンパイルする Mac を見つけることだけです。Mac への SSH アクセスを許可することを気にしない技術志向の友人がいる場合、それはそれほど難しいことではありません。

于 2009-03-29T02:26:31.237 に答える
4

何らかの方法で OS X が必要になることは間違いありません。Mac を所有していない場合でも、いくつかの代替手段を試すことができます。

于 2009-03-29T01:50:55.987 に答える
4

mach-o 用にクロス コンパイルするにはツールチェーンが必要ですが、それがあったとしても、開発に使用できる Apple ライブラリはありません。残念ながら、それらなしでどのように移植できるかはわかりません。

于 2009-03-29T01:52:03.817 に答える
3

ネットでこの小さなドキュメントを見つけました: http://devs.openttd.org/~truebrain/compile-farm/apple-darwin9.txt

これは、あなたが望むものを正確に説明しています。私自身も興味がありますが、まだテストしていません (10 分前に見つかりました)。ただし、ドキュメントは良さそうです。

于 2009-05-08T11:47:12.250 に答える
-1

いくつかのクロスコンパイラーのセットアップがありますが、それらのほとんどすべては、distccスタイルの分散コンパイル用です。私の知る限り、実際にMacがなければ、Macプラットフォームを直接ターゲットにする方法はありません。QTやwxWidgetsに頼らずに入手できる最も近いものは、GNUStepなどを使用したOpenStepですが、これは真のCocoaプラットフォームではなく、非常に近いものです。

于 2009-03-29T06:16:18.457 に答える
-4

短い答えは一種です。QTなどのクロスプラットフォーム ライブラリを使用する必要があります。ある OS で開発し、他の OS の Makefile を生成できる、QT Creator のような IDE があります。クロス プラットフォーム開発の詳細については、このポッドキャストのクロス プラットフォーム エピソードをチェックしてください(シリーズはまだ終わっていません。新しいエピソードは毎週公開されているようです)。

他の回答が説明しているように、おそらく Windows または Linux 上の Mac 用にコンパイルできますが、アプリケーションをテストすることはできないため、プロのプログラミングを行っている場合、または仕事をしている場合は、おそらく Mac に 600 ドルを費やす必要があります。オープンソース ソフトウェアについては、Mac を使用している開発者を見つけてください。

于 2009-03-29T02:39:00.647 に答える