我如何“版本” Linux 平台上的 C 二进制文件
通常的做法是不将二进制文件包含在源代码控制存储库中,我正在使用 Mercurial,并且想知道是否有人有在 C 二进制文件中嵌入版本(次要+主要)的经验,以便当我使用命令时分发它像 mybinaryApp --version 这样的行参数,我将获得一个唯一的版本,我可以在构建时控制它。
usually the practice is not to include binaries in source control repositories, i am using mercurial, and would like to know if anyone has experience with embedding version (minor + major) in a C Binary, so that when its distributed if i use a command line argument like mybinaryApp --version, i will get a unique version, which i can control at build time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在代码中嵌入版本号的方法是在单独的头文件中#define _VERSION_MAJOR ,将它们包含在需要版本号的文件中,然后在需要的地方使用该宏。然后,您可以自由地控制不同源文件中的版本号,而不必不断修改原始文件。
这是最先进工具的本质。
或者,如果您想要特定于构建的标记,则可以使用
__DATE__
和__TIME__
插入构建时间。The way that I embed version numbers in the code is to
#define _VERSION_MAJOR
in a separate header file, include them in files that need the version number, and then use that macro where needed. Then, you are free to control the version number in a different source file, without having to continually modify the original file.This is the essence of what most advanced tools do.
Alternatively, if you wanted a build-specific tag, then you can use
__DATE__
and__TIME__
to insert build time.通常的方法是使用自动工具(autoconf & automake & autoheader & al.)。他们提供了一个包含文件 config.h,该文件定义了 PACKAGE_VERSION 宏,您可以使用 --version 打印出来。
此过程独立于版本控制。原因很简单,您希望将项目作为源代码 tarball 进行分发,而人们必须在无法访问您的版本控制的情况下构建该 tarball。
The usual way is to use the autotools (autoconf & automake & autoheader & al.). They make an include file config.h available, and this file defines the PACKAGE_VERSION macro that you can print out with --version.
This process is independent from version control. The simple reason for this is that you will want to distribute your project as a source code tarball, and people have to build that tarball without access to your version control.
您是否正在寻找类似 KeywordExtension 的内容?
Are you looking for something like the KeywordExtension?