簡體   English   中英

根據git push的日期自動包含程序版本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM