web-dev-qa-db-ja.com

LinuxでMac OS Xアプリケーションを実行する

このウィキペディアによると 記事

OS Xは、一連のnixベースグラフィカルインターフェイスオペレーティングシステムであり、Apple Inc.

だから私は考えていました:

  • ワイン に似たアプリケーションはありますが、Macアプリケーションを実行していますか?

  • LinuxマシンでMac OS Xアプリケーションを実行するのは可能ですか

13
0x0584

ダーリン( link )は、ワインに類似することを目的としたプロジェクトです。 ただし、現在は一部のコマンドラインOSXプログラムのみが実行されます。 2019年半ばの時点で、多くのコマンドラインプログラムを実行でき、ホームページによると、一部の基本的なグラフィカルソフトウェアも実行できるようになっているようです。それがテキストベースでない限り、おそらくあなたが望むものをまだ実行しないでしょう。

OS Xプログラムの開発者がソースコードをリリースし、クロスプラットフォームライブラリ(QT、GTK、X11、 GNUStep またはWxWidgetsなど)を使用している限り、OSを再コンパイルできます。 Linux用のXプログラム。 OS XとLinuxは、ABIレベルよりもAPIレベルではるかに互換性があります。

GNUStep は、NeXTSTEPおよびOS XのCocoa APIを実装します。実際に実行できるように見えた場合と、実際にはほとんど使用していないように思われた場合、私が試したところ、驚くほど完全でした。 GNUStepはソースコード(API)レベルでのみ機能するため、プログラムがオープンソースでAppleのCocoa GUI(独自仕様の「Aqua」ではない)を使用している場合に機能します。コードをコンパイルしてリンクできるかどうかに依存します。

API(アプリケーションプログラミングインターフェイス)を車のダッシュボードのようなものと考えてください。すべてが車のドライバーに表示され、他の人の車に乗り込んで、別のダッシュボードを簡単に見つけることができます。

ABI(アプリケーションバイナリインターフェース)を車のエンジンと考えてください。メーカーやモデルによって大きく異なり、おそらくシェビーエンジンをボルボに簡単に交換することはできません。

ダーリンは、このアナロジーでボルボのシャーシにシボレーエンジンを配置し、ソースからコンパイルすることは、シボレーから出てボルボに入るようなものです。プログラマーの観点から見ると、1つは他の1つよりもはるかに簡単です。

しかし、Appleには、他の誰も持っていない独自のユーザーインターフェイスライブラリがあります。開発者がこれらのいずれか(Aquaなど)を使用した場合、ダーリングが成長することを期待して待つ必要がありますWineのように、または自分で移植します。ソースコードがリリースされていない場合は、エンジンが大きくなりすぎて、Volvoのエンジンベイに収まらなかったり、前輪駆動車に接続するように設計されていたりします。あなたのボルボが後輪駆動だった場所です。誰かが完全に狂ったマニアックで(最善の方法で)何ヶ月もの自由な時間とばかげた量の献身を持っているのでない限り、それは起こりそうにありません。

さらに、Cocoa APIのカバレッジに関しては、GNUStepが100%完全ではないため、複雑なプログラムでは、まだある程度の靴磨きが必要になる可能性があります。また、GNUStepはxcodeと同等のビルドシステムを提供していません。つまり、元の開発者がXCode IDEの「ビルド」システムを排他的に使用した場合、makefileを作成したままになる可能性があります。ソフトウェアのコンパイルとリンクの経験はあるものの、これまでバックエンドの経験がなかった.xcodeprojのような形式から有用な情報に取り組むのは難しいため、これは私にとって最も苛立たしい部分でした。

17
Wyatt8740