通常的做法是不在源控件存储库中包含二进制文件,我使用的是mercurial,并且想知道是否有人在C二进制文件中嵌入版本(次要+主要)的经验,以便当它分发时如果我使用命令行参数,如mybinaryApp --version,我将得到一个唯一的版本,我可以在构建时控制。
答案 0 :(得分:0)
您是否正在寻找类似KeywordExtension的内容?
答案 1 :(得分:0)
通常的方法是使用autotools(autoconf& automake& autoheader& al。)。它们使包含文件config.h可用,并且此文件定义了可以使用--version打印出来的PACKAGE_VERSION宏。
此过程独立于版本控制。原因很简单,您需要将项目作为源代码tarball进行分发,人们必须构建该tarball而无需访问您的版本控制。
答案 2 :(得分:0)
我在代码中嵌入版本号的方法是在单独的头文件中#define _VERSION_MAJOR
,将它们包含在需要版本号的文件中,然后在需要的地方使用该宏。然后,您可以自由地控制不同源文件中的版本号,而无需不断修改原始文件。
这是大多数高级工具的精髓所在。
或者,如果您需要特定于构建的标记,则可以使用__DATE__
和__TIME__
来插入构建时间。