2012-01-27 16 views
4

大学のコースでは、LinuxとWindowsの両方で動作するはずのhttpサーバを作成する必要があります。 私は重い仮想環境を扱うことができないと思う謙虚なLinuxマシンを持っていますが、私はそれをインストールする手間を省くことはできません。LinuxとWindowsをターゲットとするLinuxで開発環境を設定する

これは、短期間のコーディングセッションとテストセッション(両方のプラットフォームでの後者のセッション)の間で迅速に交互に切り替えるのに十分な環境を必要とするほど、私の複雑なプロジェクトの最初のプロジェクトです。

だから、私はこの状況のた​​めに何が最高のセットアップになるのだろうと思っていました。私はワインでそれをテストすることは大丈夫だろうと考えています(実際には実際のことではありません)、Windowsターゲティング用のMinGWをインストールしました。

基本的には、よく書かれた簡単なメイクファイルが私の問題を解決する可能性があります... LinuxバイナリとWindowsバイナリの両方をビルドし、それぞれのフォルダ(WineサブツリーのWindowsのもの)に配置する必要がありますすべて完了!しかし、私はこのことで非常に未熟な気がして、どこから始めるのか本当に分かりません。多分マニュアルを作る、ああ!:)

私が思っていたか知っていたことはありませんでした! ありがとうございました!

(PS。私はあなたが上だ:)

答えて

1

...日食この問題を完全に解決するスカイネットのようなプラグインのいくつかの種類を提供していない限り。エディタとしてのEmacsを使用するか、あるいはVimを学ぶことを計画しています正しいトラック。 MinGWのおかげで、それほど複雑ではありません。基本的に2つのことが必要です:

  1. コードはOS間で移植可能でなければなりません。 MinGWにはPOSIXのサポートがありますが、おそらくCygwinのどちらかを使用して、POSIXインターフェイスを使用できるようにするか、OSとのインターフェイスに独自の互換性レイヤを用意する必要があります。私はCygwinのためにおそらく行きますが、あなたはPOSIXに対してしかコード化することができず、互換性レイヤをテストしてデバッグする必要はありません。また、OS特有の外部ライブラリを使用しないようにしてください。移植性のないコードでは、コンパイルエラーが発生することがよくありますが、アプリケーションを完全にテストしてください。

  2. LinuxとWindowsを対象とするツールチェーン。あなたはすでにそれらを持っているので、あなたはそれらを正しく使う必要があります。クロスコンパイル中にtoolchainを呼び出すときは、通常、プレフィックスとして$(CROSS_COMPILE)のような変数を使用します。したがって、Linux用にコンパイルするときは、gcc、ldなど(CROSS_COMPILE変数を空にする)を呼び出し、Windows用にコンパイルすると、たとえばi486-mingw32-gcc、i486-mingw32-ld等、すなわちCROSS_COMPILE = i486-mingw32-である。または、ターゲットに応じてCC、LDなどを定義するだけです。

私はLinuxで小さなゲームを書いて、それをWindowsでも実行させました。 browse the codeの場合、#ifdefジャングルのないコード(基本的にはLinux用のいくつかのデバッグ機能が有効になっています)を見ることができます。また、Makefileもシンプルで、クロスコンパイル、 CCなどが必要です。重要なオープンソースソフトウェアがこのように書かれているので(特にデスクトップや組み込み機器で使用されるソフトウェア)、ビルド環境を正しく設定するための多くの他の例も見つかるはずです。

Windows上でアプリケーションをテストする場合、実際のWindowsマシンを何らかの形で見つけることができれば最善の選択だと思います。すべてを正しく行うと、Linuxと同じように動作するはずです。両方のOSでアプリケーションを継続的にテストする必要はありません。Windowsマシンでのテストが不可能な場合は、VMを選択するのが一番良い選択ですが、設定するのはおそらくより困難です。 Wineは良いバックアップ計画ですが、WineでテストしただけではWindows上でアプリケーションがうまく動作することは確信できません。

+0

MinGWはいつWindows用のPOSIX実装を提供しますか?参照?? –

+0

そうです、私はCygwinと混同しました。修正されました。 – Antti

関連する問題