2012-01-17 16 views
5

私は組み込みシステム上で動作するC++プログラムを持っています。クライアントが問題に遭遇すると、彼は私にログファイルを送ります。そして、バイナリがログにいつビルドされたかを正確に見ることは素晴らしいことです。C++プログラムでlinux/proc/versionに似た機能を実装するにはどうすればよいですか?

...

const std::string APP_BUILD = "2012.01.17.18:28"; 

int main() 
{ 
    std::cout << "Was built: " << APP_BUILT << std::endl; 
} 

私は何をしたいのは、ビルド時にAPP_BUILDに自動的に設定することです:だから、現在、私はこの単純だが非常に効果的でない方法を使用します。 Linuxには/ proc/version変数があり、ビルド時間を決定するために読むことができます。私の読書

cat /proc/version 
Linux version 2.6.38-13-generic ([email protected]) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)) #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 2011 

これはできますか? (私はLinuxで私のアプリケーションを構築しています)。

+1

GCC [定義済みのマクロ](http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html)を確認して、そこにいくつかのデータがあります。 –

+0

いくつかのバージョン管理システムを使用しているならば、特定のバージョンを一意に識別する文字列を埋め込みたいと思うかもしれません。 –

+0

はい、私はMercurialを使用しています。それを行う方法はありますか? –

答えて

9

__DATE____TIME__のマクロを探しているようです。これらの標準マクロは、CとC++の両方で使用できます。

たとえば、gcc manualを参照してください。

+0

ありがとう!それを完全に忘れてしまった。 –

関連する問題