6

私はC++の初心者であり、最初のクロスプラットフォームC++プロジェクトの開発を始めています。プラットフォーム固有の呼び出し(Win32とPOSIX)を使用する必要があるため、WindowsとLinuxの両方で頻繁にコンパイルする必要があります。

私が今まで使用しているシングルプラットフォームプロジェクトでは、LinuxではKDevelop、WindowsではVisualStudio2012を使用しています。

同じプロジェクトの2つの異なるオペレーティングシステムで2つの異なるIDEを使用するにはどうすればよいですか?

  1. 単一のクロスプラットフォームのIDEを使用する必要がありますか?
  2. CMake(または同様のもの)を学び、両方のIDEで動作するように構成する必要がありますか?
  3. コードをWebでホストし、オフラインプロジェクトと自動的に同期できますか?
  4. 代替案?

みなさん、よろしくお願いします。

編集:

明確にするために、プロジェクトは学問的なプロトコルのための単純なサーバーになります。サーバーとの間でいくつかのファイルをアップロード/取得するように要求するクライアントがあります。scholasticとは、たとえば、高レベルのC++スレッドライブラリの代わりにpthreads/win32スレッドを使用する必要があることを意味します。

4

5 に答える 5

6
  1. たぶん-本当にあなたが最も快適に感じるものに依存します。プロジェクトは非グラフィカルであるため、IDEが提供するのはファイルの編集とコンパイルだけです。そのため、IDEを使用して1台のマシンでプロジェクトをビルドし、ソースを別のマシンに移動してそこでコンパイルすることができます。

  2. 個人的には、Linux用とWidnows用の2つのmakefileがあります。生活をかなりシンプルにします[巧妙な方法に基づいて適切なものを選択する「外部」makefileを持つことができます]。

  3. はい、WindowsとLinuxの両方で機能するバージョン管理システム(git、mercurial、subversion、bazaarなど)を見つける必要があります。そうすれば、中央リポジトリがあるだけでなく[どちらのマシンもこれらのいずれかの「サーバー」として使用できます]、変更を追跡することもできます。間違いなくやりがいがあります!

  4. 何百もの異なる選択肢があります。ただし、維持するのが簡単で、ツールの複雑さが少ないほど、たとえば、CMakeが希望どおりに構築されていない理由を理解するのではなく、実際にプロジェクトのプログラミングに費やす時間が長くなります。

また、システム固有のすべてのコードをアーキテクチャごとに1つのファイルに分離するようにしてください。そうすれば、後で別のアーキテクチャに移植するのが簡単になり、コードのほとんどが両方のシステムでコンパイルされます。

于 2013-01-20T18:37:31.470 に答える
3
  1. 通常、IDE固有のプロジェクト/ビルドファイルを追加/移動/削除されたソースファイルに調整するのは簡単です。したがって、クロスプラットフォームIDEの使用はそれほど重要ではありません。
  2. あなたはそれを行うことができます、私はCMakeがプロジェクトを構築するために使用できるいくつかのIDE用のプロジェクトファイルを作成することもできると思います。
  3. ええと、あなたがそれをオンラインでホストしたいかどうかはあなたの選択です。間違いなくすべきことは、ある種のバージョン管理を使用することです。バグ追跡システムも役立ちます。とにかくコードをオープンソース化したい場合は、既存のホスティング機能の1つを使用することは明らかです。
  4. あまり。

ただし、1つのコメント:C++コードを移植可能にするのははるかに困難です。Qtのようなツールキットの上に構築することは非常に役立ちます。標準のC++に近づきたい場合は、少なくともスレッド、スマートポインター、ファイルシステムアクセスなどにBoostを使用することを検討してください。幸運を!

于 2013-01-20T18:30:59.707 に答える
2

私の最近の経験は、Qtを見てみることを示唆しています。IDE(QtCreator)は非常に優れており、すべての主要なプラットフォームで利用できます。

私は、OpenCVやZBarなどのかなり複雑なコンポーネントを使用するかなり単純なプロジェクトに使用しました。Linuxで開発し、ソースをWindowsにコピーして、再コンパイルします。

両方のプラットフォームでOpenCVをセットアップするのに問題があったので、とても簡単とは言えませんが、機能しています。KDevelopはすでに知っているので、Qtも知っているはずです。

また、Qt5をスマートフォン上のUbuntuのプラットフォームと見なす最近のトレンドにも大きな価値を置いています。私はこれが発展するのを見たいと思っています。

HTH

于 2013-01-20T18:26:56.080 に答える
1

同じプロジェクトの2つの異なるオペレーティングシステムで2つの異なるIDEを使用するにはどうすればよいですか?

単一のクロスプラットフォームのIDEを使用する必要がありますか?

いいえ、これは間違った質問をする場合だと思います。クロスプラットフォームプロジェクトを作成するために重要なのは、ビルドスクリプトとシステムに依存しないコードの性質です。好みのIDE用のプロジェクトファイルがあると役立つ場合もありますが、複数のIDE用に複数のプロジェクトファイルを維持すると、事態はさらに困難で複雑になります。代わりに、プロジェクトのメンテナンスに費やす時間を最小限に抑えるビルドシステムを見つけることに集中する必要があります。

そのため、CMakeとPreMakeはそれを実現するための最良のツールの2つであるように思われます。

数十の選択肢(SCons、Cook、kbuild、Jam、Boost Jamなど)がありますが、CMakeとPreMakeはどちらもプロジェクトファイルとビルドスクリプトを生成するため、これらが最良のソリューションである可能性があります。

あなたのマイレージは異なります。

コードをWebでホストし、オフラインプロジェクトと自動的に同期できますか?

どこでも機能する堅牢なソース管理が必要です。GitとMercurialは、GithubやBitBucketなどの「クラウド」ホスティングを使用する場合に最適に機能するようですが、必ずしもそれを必要としません。作業環境とチームの規模に応じて、SubversionやPerForceなどを好むかもしれませんが、それはあなたとあなたのチーム次第です。

于 2013-01-20T18:43:09.033 に答える
1
  1. それは役に立ちます。多くのプラットフォームでデバッグする必要があるでしょう...QtCreator、Netbeans、Eclipseが思い浮かびます。

  2. はい。cmake、またはQtのqmake多分

  3. 技術的な質問ではありません。バージョン管理を使用するだけです!ただし、githubとgitoriousは、オープンソースプロジェクトにとって簡単な選択です。

  4. Qtは、クロスプラットフォームのC ++ GUIアプリにとっては簡単な選択であり、GUIのない​​ネットワークアプリにとっても適切な選択です。

于 2013-01-20T18:49:34.160 に答える