gpt4 book ai didi

c++ - 如何使用 Visual Studio 和 Linux 对静态库进行版本控制?

转载 作者:行者123 更新时间:2023-11-30 01:53:19 25 4
gpt4 key购买 nike

我有一个原生 C++ 静态库。我在 Windows 中使用 Visual Studio 2012,在 Linux 中使用 Eclipse。

是否有提供静态库版本信息的内置功能?

我尝试遵循相同的 steps我使用了我的 C++/CLI 库,但它似乎没有任何效果。

它构建了,但我在任何地方都看不到版本。

如何为静态库设置版本控制信息?

  • Visual Studio 中是否有用于此目的的内置功能?
  • 如果不是,设置版本信息的正确方法是什么?有什么最佳做法吗?
  • 你是如何为 Linux 做这件事的? (我将我的 Library for windows 构建为 *.lib 文件,将 Linux 构建为 .a 文件,我需要保留版本信息)

更新

这是 Paul 建议的带有 SpecialBuild 的 VersionInfo。该字段不会在任何地方显示。

VS_VERSION_INFO VERSIONINFO
FILEVERSION 61,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x21L
#else
FILEFLAGS 0x20L
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040004b0"
BEGIN
VALUE "CompanyName", "TODO: <Company name>"
VALUE "FileDescription", "TODO: <File description>"
VALUE "FileVersion", "61.0.0.1"
VALUE "InternalName", "ExxonMobil.Rapid.Services.TEM"
VALUE "LegalCopyright", "Copyright (C) 2014"
VALUE "OriginalFilename", "ExxonMobil.Rapid.Services.TEM"
VALUE "ProductName", "TODO: <Product name>"
VALUE "ProductVersion", "1.0.0.1"
VALUE "SpecialBuild ", "Blah"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x400, 1200
END
END

最佳答案

据我所知,静态库没有具体的版本信息,因为静态库是整个应用程序的一部分。

您可以做的是使用现有的 VersionInfo 条目之一,可能是 SpecialBuild,它列出了用于构建应用程序的静态库的版本。当然,您必须为静态库发明一个版本编号系统。

“SpecialBuild”条目存在一个问题,那就是 Windows 操作系统附带的 VersionInfo 查看器(打开资源管理器,右键单击可执行文件以调出上下文菜单,选择“属性”并转到“详细信息”选项卡)不显示 SpecialBuild 信息。这对我来说是 Microsoft 的疏忽。

有第三方查看器,例如显示资源信息的这个:http://www.naughter.com/versioninfo.html .如果这不是一个选项,则版本信息中还有其他字符串字段可用于存储其他信息。

关于c++ - 如何使用 Visual Studio 和 Linux 对静态库进行版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23229692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com