如何更改*.a文件编译后的版本信息

发布于 2024-08-22 12:49:34 字数 112 浏览 1 评论 0原文

我想知道有什么方法(如果可能的话),在编译后更改 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

红ご颜醉 2024-08-29 12:49:34

静态库只是 .o 文件的档案 - 它们本身不会嵌入版本,除非您的代码以某种方式发布了包含版本信息的符号。

就像:

int libFoo_version = 0x01000000;

或者你可以使用

char* libFoo_version = "1.0";

然后使用类似字符串 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:

int libFoo_version = 0x01000000;

Or you could use

char* libFoo_version = "1.0";

and afterwards use something like the strings libFoo.a | grep libFoo_version command in combination with sed to alter the version information.

Yet another option is to embed an empty file in the archive which name contains the version information. YMMV

季末如歌 2024-08-29 12:49:34

静态库本身没有版本信息。

Static libraries don't have version information per se.

匿名的好友 2024-08-29 12:49:34

如果版本是源代码的一部分(例如,字符串常量),那么如果新版本的长度与旧版本的长度相同,则可以简单地使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文