binary生成日時を実行中に取得する方法

e2studioとcc-rxを使って、RX*のバイナリを生成してます。
まだ^2 リリースできるレベルでは無いのですが、生成物を他人へ渡さなければならず、その度にハードコーディングでVersionを付加するのは手間ですので、何か良い方法は無いのかと考えております。
linuxであれば、プログラム自身の生成日時を取得することは容易にできるので、その日時をVersionとして認識できますが、同様な事をRXのプログラムで実現する事は可能でしょうか。
motファイル内に生成日時が記録されていて、その日時をプログラム実行中に(容易に)取り出す手段があれば実現できる、と考えております。
これ以外の方法で、簡単にプログラムを識別するアイディアがあれば、お知らせ下さい。

  • コンパイル時の日時と時刻が反映されるマクロ__DATE__ と __TIME__ があるので、

    const char date[] = __DATE__;
    const char time[] = __TIME__;
    

    みたいなのを固定番地に配置するようにして、ビルド時に常にコンパイルされるようプロジェクトを設定するのがスマートでは?

  • 文字列を書いておけば簡単。日付だけで無く、何でも書ける。
    __DATE__ はコンパイルした日の日付だから、ソースファイルに変更が無くても、違う日にコンパイルすれば違う日付になります。バージョン代わりには使えない。
     古いバージョンのソフトをコンパイルすると、最新の日付になります。それを見て最新バージョンと勘違いしたら困るでしょう。
     
     バージョン代わりに日時を使うのであれば、文字列の中に自分で書いた方が良いでしょう。

     文字列さえ作っておけば、SCIで出力する事もできます。パワーオンで出力すれば良いのです。
    デバッガーでメモリーを読めば、アスキーコードに変換して文字列を読むことも出来ます。
  • わわいです
    まあ、__DATE__マクロを使用する、というのがこの質問の回答になるんですが、、、
    こういう、バージョン管理のため、とか、最新版の判別のため、という目的では、全く解決になりません。
    しばらく使うとわかるのですが、うっかり古いバージョンをビルドしてしまう、とかするとかんたんに破綻してしまうことになります
    ではどうすればいいかというと、やっぱり自分で書いて管理しなければしよーがない、という結論に至ります。

    まあ、ここらへんは誰しも通ってきた道なんで、自分なりの答えを見つければいいんではないかと思います

    #最新版の文書がどれかを見分けるには、赤いペンで「最新版!!」と大きく
    #書いておけばいい。                   という笑い話があります
  • 皆様、アイディアありがとうございます。
    __DATE__ マクロがある事、頭から欠落していました。
    Version自体は子版も含め付加してしていますが、ちょっとの変更&確認で使ってもらうプログラムを区別する手段として使います。現在起動時にVersionをSCI出力してますので、これに加えてbuildの日時も出力します。