2

私はLinuxで実行され、c ++(c ++ 11)およびpythonで記述され、多数のライブラリ(VTK、boost、pyqt、OpenGL)を使用して実行され、python拡張モジュール(およびそれらのモジュールのプラグイン)および純粋なpythonモジュールにコンパイルされます(メイン プログラムは python スクリプトです)。コードはクロスプラットフォーム (いくつかの例外を除いて、dlopen#ifdefgettimeofdayを介して Windows の同等物に置き換えることができます) であり、コンパイラに依存しません (それは でコンパイルされ-ansiます__attribute__。必要に応じて)。

Windows でコンパイルしようと考えていますが、どのように進めればよいか完全に迷っています (Linux での開発にはかなりの経験がありますが、90 年代後半から Windows を使用していません)。

mingw または MSVC コンパイラを使用する必要がありますか? クロスコンパイルしたほうがいいでしょうか?Web からインストーラーをダウンロードして、依存関係を「手動で」インストールする必要がありますか? それらもコンパイルする必要がありますか?インクルード ファイルの標準パスはありますか、それともすべて検出されますか? なんとかコンパイルできた場合、どうすればある種のパッケージを作成できますか (これは純粋な python モジュールと共有ライブラリのバンドルです)。

Windows での動作を確認しようとしたのは私が初めてではないと思います (Linux のパッケージ マネージャーや開発者向けのものすべてにうんざりしていると思います)。

4

1 に答える 1

0

ここでの選択は、Windows でのコンパイルの目標に依存すると思います。開発プラットフォームを選択できる他の開発者を巻き込む準備はできていますか? 追加の警告を生成するために別のコンパイラを使用しますか? アプリケーションを Windows プラットフォームに展開しようとしていますか? このような質問をすることで、より多くの情報に基づいた決定を下すことができます。

ここにいくつかの提案があります...

  • MSVC を試しても問題ありません。2010 Express Edition は、標準 C++ 開発をサポートする最後の無償版です。今後の Express Edition は、「Metro」アプリ専用です。Windows 開発の目標と照らし合わせて、それに応じて選択します。
  • クロス プラットフォーム ビルドの場合は、CMake や SCons などの標準化されたビルド システムを実装できるかどうかを確認してください。
  • 最終的な決定に関係なく、依存関係を付けて出荷することはありません。開発者が依存関係を個別にダウンロードすることを要求することは、オープン ソースの標準的な方法です。現在の安定版リリースがアプリケーションと下位互換性がない場合は、必ずバージョン情報を含めてください。(または、これらの問題を修正して、サード パーティのコードで最新の修正を利用できるようにすることをお勧めします。) Python は、少なくとも、開発者の責任である必要があります。これはインストールされることを意図しており、pywin32 拡張機能は、Windows インストールのシステム レジストリに COM 項目を登録します。
  • オープン ソース開発者を募集する限り、MinGW を開発者のマシンにインストールすることを要求すると、一部の熱心な MSVC ユーザーがプロジェクトに取り組むのを思いとどまらせることに気付くかもしれません。
于 2012-07-05T15:46:18.620 に答える