[英]Auto-include version of program based on date of git push
我正在用C開發一個程序,該程序需要包含git存儲庫中給定分支中執行的最后一次推送的日期和時間,以便對其進行版本控制。
我知道如何從git中獲取數據並使用它來生成所需格式的版本號。 ( https://stackoverflow.com/a/51403241/7114946 )
問題是我不知道如何將其包含在程序代碼中,因為它最終需要在應用程序啟動期間“打印”此信息。
我發現了預處理器宏__TIME__
和__DATE__
。 我想知道是否還有其他類似的宏來包含某些給定的字符串/數據。
謝謝
編輯:我需要在編譯時包含此信息,而不是在將代碼上傳到git中時。
您可以在命令行上定義宏:
gcc -DFOO=BAR -c prog.c
就像在prog.c
#define FOO BAR
一樣。
您可以將其與shell命令插值結合使用,以獲取外部程序的輸出:
gcc -DGIT_TIMESTAMP="\"$(git whateveryourcommandis)\"" prog.c
(轉義引號用於使宏擴展為字符串文字。)
然后prog.c
可以執行例如:
printf("my git timestamp is %s\n", GIT_TIMESTAMP);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.