2

現在、Windows と Linux を使用し、SVN を使用している人々が関与するプロジェクトを開始しています。

問題は、Visual Studio (ほとんどの場合 2010) を使用したい人がフォルダー構造とプロジェクトの同期に問題があることです。

彼らは ankhsvn (http://ankhsvn.open.collab.net/) を持っており、プロジェクトを実際のフォルダーにマッピングしているので、誰もが適切なファイル構造を持ち、ソリューションは SVN にあります (私たちはそうしないことを好みますが、 ankhsvn のようなものが必要です) 他の人は、SVN のソリューションの下にあるプロジェクト フォルダーをチェックアウトするだけです。

しかし、SVN を使用していない人が新しいファイルを追加すると、VS は自動的に追加しないため、多くの問題が発生します。

それで、私たちの設定は正しいですか?この種の環境でうまく機能する方法はありますか?どのように私たちに働くよう提案しますか?

4

3 に答える 3

2

Cmake は間違いなく進むべき道だと思います。これにより、1 つのファイル セット (CMakeLists.txt) のみを維持でき、Eclipse、Xcode、および makefile のすべての Visual Studio バージョンのプロジェクトを生成できます。 gcc、CCなど...

cmake のセットアップの難しさに関しては、ほとんどの場合、それほど多くの作業は必要ありません。ハイメの回答へのコメントで述べたように、含めるファイルのリストを指定する必要はありません。フォルダーを含める (グロブ) ことができます。そうすることで、新しいソース ファイルが追加されたときに、cmake コマンドを実行してソリューションを更新するたびに、それらのファイルがソリューションに含まれます。

また、プロジェクトを cmake にすると、Hudson などの継続的インテグレーション フレームワークのセットアップに役立つ場合があります。コード リポジトリ (svn) を監視し、変更が送信されたときに cmake を呼び出し、プロジェクトをビルドし、単体テストを実行できます。

project(MyNeatProject)

include_directories(h/ hpp/)
file(GLOB_RECURSE _my_src ./c/*.c)
file(GLOB_RECURSE _my_hdr ./h/*.h)
add_library( some_library SHARED ${YBMBS_SRC} ${YBMBS_HDR})
target_link_libraries( some_library dependency1 dependency2)
于 2010-10-26T19:56:26.873 に答える
2

ターゲットごとにプロジェクト ファイルを更新する必要がある場合、複数のビルド ターゲットを維持することは困難です。たとえば、新しいソース ファイルを追加するには、Visual Studio プロジェクトとメイクファイルを更新する必要があります。

CMakeを試してみませんか?複数のビルド環境用のプロジェクト ファイルを生成できます。仕事でこれを使用して、32 ビットまたは 64 ビットの Windows で Visual Studio の複数のバージョンをサポートし、32 ビットまたは 64 ビットの Linux で複数のバージョンの gcc をサポートしています。各プロジェクト(ライブラリまたは実行可能ファイル) では、ターゲット プロジェクト ファイルの生成に使用される 1 つの CMakeLists.txt ファイルを維持する必要があります。

于 2010-10-13T16:42:41.693 に答える
1

チームの構成または対象とする環境に基づいて、ツリー構造を分離します (おそらく完全に別個のリポジトリ)。

誰もが SVN クライアントを持っている必要があります。Eclipse を使用しているために AnkhSVN を使用できない人は、Tortoise や Eclipse 用の SVN プラグインなどを使用できます。SVN は、C# や Java などのコードを追跡しているという事実を知りませんし、気にもしません。ファイルをローカル HDD に追加しても、魔法のようにリポジトリ内に表示されることはありません。

于 2010-10-12T15:37:34.673 に答える