我如何“版本”在Linux平台上的C二进制文件
问题描述:
通常的做法是不包括源代码控制库中的二进制文件,我使用的是mercurial,并且想知道是否有人有嵌入版本的经验(minor + major )在C二进制文件中,以便当它的分布式,如果我使用像mybinaryApp - 版本的命令行参数,我会得到一个独特的版本,我可以在构建时控制。我如何“版本”在Linux平台上的C二进制文件
答
我在代码中嵌入版本号的方法是在单独的头文件中将#define _VERSION_MAJOR
包括在需要版本号的文件中,然后在需要的地方使用该宏。然后,您可以自由地在不同的源文件中控制版本号,而无需不断修改原始文件。
这是大多数高级工具所做的事情的本质。
或者,如果您想要构建特定标记,则可以使用__DATE__
和__TIME__
来插入构建时间。
答
通常的方法是使用自动工具(autoconf & automake & autoheader &等)。他们使包含文件config.h可用,并且该文件定义了可以用--version打印的PACKAGE_VERSION宏。
此过程独立于版本控制。原因很简单,你需要将你的项目作为源代码压缩包发布,而且人们必须构建该压缩包才能访问你的版本控制。
您使用的是哪种C编译器? –
@ Foo Bah我正在使用gcc – kamal