0

私はFireBreath上に構築された他の2人の開発者と一緒にプロジェクトに取り組んでいます。これまでのところ、自分のマシンで物事を完璧に機能させることができましたが、Mercurialを介して開発を調整する必要があります。そこで、ファイルをリポジトリにプッシュして、すべてが順調だと思いました。

残念ながら、それは機能しません。

ソリューションを構成するさまざまな.vcprojファイルにはすべて、ローカルファイルシステムへのハードコードされた参照が含まれています。私はプロジェクトを動かしていないので、これは私にとってはうまくいきます。ただし、ファイル構造が異なる(ドライブ文字、フォルダーの場所が異なるなど)別のマシンでソリューションを構築しようとすると、すべてが機能しなくなります。

FireBreathの標準プロジェクト生成スクリプト(Python)を使用してから、Visual Studio CMakeスクリプト(prep2008.cmd)を使用してソリューションファイルを生成しました。他の開発者が同じコードベースを使用できるように調整するにはどうすればよいですか?

4

4 に答える 4

5

開発者が同じbuild/make / projectファイルを使用していない場合、これはすぐにメンテナンスの悪夢になる可能性があります。したがって、間違いなくすべて同じファイルを使用する必要があります。.vcproj(これの例外は、プロジェクトファイルが他のファイルから生成された場合です。その場合、それらの他のファイルを上記の方法で処理します。)

異なるマシンで異なるセットアップの問題に対処するには、2つの方法があります。1つは、プロジェクトのパスを基準にしてすべてのパスを作成することです。もう1つは、環境変数を使用してファイル/ツール/ライブラリなどを参照することです。IMEでは、プロジェクトでチェックアウトできるすべてのものに相対パスを使用し、残りには環境変数を使用するのが最善です。必要なすべての環境変数の存在をチェックし、欠落している環境変数の意味を指摘するスクリプトを追加し、これをビルドの前提条件として実行します。これにより、新しいビルドマシンを起動して実行しようとする人は、何をすべきかについてのヒントを得ることができます。

于 2010-11-20T16:30:51.520 に答える
3

誰もがsbiの回答から更新されたコメントを確実に受け取れるようにするために、FireBreath開発者からの「決定的な」回答を提供しましょう。

ビルドディレクトリは使い捨てです。.vcprojファイルを共有しないでください。代わりに、CMakeを使用する他のプロジェクトと同様に、プロジェクトを変更するたびに、新しいコンピューターごとにビルド/ディレクトリを再生成する必要があります。

詳細については、http://colonelpanic.net/2010/11/firebreath-tips-working-with-source-control/を参照してください。

参考までに、私はFireBreathの筆頭著者であり、記事を書きました。

于 2010-12-02T07:19:40.290 に答える
2

私はFireBreathに精通していませんが、参照を相対化してから、すべてのマシンでその相対構造を再作成する必要があります。つまり、プロジェクトが「c:\ myprojects \ thisproject」にあり、追加のインクルードディレクトリ「c:\ mydir \ mylib \ include」がある場合、後者のパスを「.... \mydir\」に置き換える必要があります。 mylib\include」。

于 2010-11-19T21:56:28.800 に答える
0

編集:私はそれをより明確にするために私のanyswerを書き直しました。私が正しく理解したとき、あなたの問題は、FireBreathが絶対パスを含む.vcprojファイルを生成し、この.vcprojファイルを別の開発者マシンで使用したいということです。

3つのオプションがあります。

  1. それと一緒に暮らす。つまり、すべてのチームメンバーが同じファイル構造/ファイルシステムのビューを持ち、ツールが同じ場所にインストールされていることを確認してください。

  2. FireBreathの作成者に、相対パス、環境変数の使用などを許可するように.vcprojジェネレーターを変更するように依頼してください。

  3. 1または2が機能しない場合は、それらの.vcprojファイルで親戚への絶対パスを変更するためのプログラムまたはスクリプトを作成します。FireBreathプロジェクトを再生成する必要があるときはいつでも、このスクリプトを実行してください。

FireBreath FAQのためにすべきでないこと:.vcprojを手動で変更しないでください。これらの変更は、次にプロジェクトが再生成されたときに失われます。

編集:「オプション4」のようです。最善の解決策であることが判明しました.vcproj。開発者ごとに個別にこれらのファイルを生成します。私の提案もお役に立てば幸いです。

于 2010-11-19T21:55:34.827 に答える