1

(C++) プロジェクトのバージョン情報の一部としてビルド番号を割り当てたいと考えています。g ++またはEclipseのいずれかで、BUILD_NUMBERをバンプアップする(またはリリース時に修正したままにしておくことを選択した場合はそうしない)外部スクリプトを呼び出してから、BUILD_NUMBERをコード内の#defined値として取得したいと思います。これは可能ですか?どうすればいいですか?この値は、C++ 変数である可能性があるため、より制限する必要があることに注意してください。ビルドがベータ版であると宣言するまで、変数になります。するとロックダウンします。

別の方法として、SVN のバージョン番号を使用することもできます。Eclipse で環境変数または #define-d 値に詰め込むことができますか?

Google や Eclipse フォーラムを調べたところ、この質問をするのに使用するのと同じ検索語を共有するエントリがたくさん見つかりました。まったく話題に上るものはありませんでした。

4

3 に答える 3

3

Eclipseは、通常、デフォルトで「all」ターゲットを使用してmakefileを呼び出します(ターゲットは、「プロジェクト」>「プロパティー」>「C++ビルド」>「動作」>「ワークベンチビルド動作」で変更できます)。

あなたの質問はあなたのmakefileについて言及していないので、それはおそらく問題の鍵です:g ++が呼び出される前にビルド番号ヘッダー(作成される)が生成されることを保証するコードをmakefileに追加する必要があります。

GNU'make'に慣れていない場合は、それから始める必要があります。Subversionから現在の回転数を取得する場合は、bashスクリプトでこれを行うか、レシピを作成できます。

echo "#define SVN_REV=$(svn info | grep 'Last Changed Rev:' | cut -c 17 )" > my_version_header.h

このコマンドは、最初に「svn info」を実行し、最後に変更されたリビジョン行を選択し、行の先頭を削除して、結果をCヘッダーファイルに書き込みます。

于 2012-08-27T13:01:28.767 に答える
1

$ Revision $ Subversionキーワードを使用して(そしてsvn:keywordsを適切に設定して)、挿入/更新されたファイルの最後に変更されたリビジョンを取得できます。

ただし、「プロジェクト」(ディレクトリ)全体のリビジョン番号が必要な場合は、FAQで説明されているように行う必要があります。

于 2012-08-27T13:02:04.493 に答える
0

http://th0nt.wordpress.com/2009/05/01/use-build-variables-in-eclipse-cdt-to-simplify-setting-work/で、自分のニーズを満たすソリューションを見つけました。その要点は、 -D VERSION_NUMBER=myShellScriptを Properties->C/C++ Builds->GCC C++ Compiler->Miscellaneous プロパティに追加することです。myShellScript をパスのどこかに配置します。

于 2012-08-27T13:42:33.420 に答える