如何更改*.a文件编译后的版本信息
我想知道有什么方法(如果可能的话),在编译后更改 Unix 中 *.a 文件的版本信息。 我知道如何在 Windows 中处理 Dll 文件 - 但不知道如何在 Unix 中管理它。
谢谢大家!
I would like to know what is the way (if it is possible at all), to change the version information of a *.a files in Unix after the compilation.
I know how to do it for Dll files in windows - but have no idea how to manage with it in Unix.
Thank you all!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
静态库只是 .o 文件的档案 - 它们本身不会嵌入版本,除非您的代码以某种方式发布了包含版本信息的符号。
就像:
或者你可以使用
然后使用类似字符串 libFoo.a | 的东西。 grep libFoo_version 命令与 sed 结合使用来更改版本信息。
另一种选择是在存档中嵌入一个空文件,其名称包含版本信息。青年MMV
Static libraries are just archives of .o files - they don't embed version themselves unless your code somehow publishes a symbol that holds version information.
Like:
Or you could use
and afterwards use something like the
strings libFoo.a | grep libFoo_version
command in combination withsed
to alter the version information.Yet another option is to embed an empty file in the archive which name contains the version information. YMMV
静态库本身没有版本信息。
Static libraries don't have version information per se.
如果版本是源代码的一部分(例如,字符串常量),那么如果新版本的长度与旧版本的长度相同,则可以简单地使用 sed 来更改它。
If the version is part of the source code (for example, a string constant), then you can simply use
sed
to change it if the new version has the same length as the old one.