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

时间:2010-02-23 09:37:56

标签: linux unix makefile

我想知道在编译之后在Unix中更改* .a文件的版本信息的方式(如果可能的话)。 我知道如何在Windows中为Dll文件执行此操作 - 但不知道如何在Unix中使用它来管理它。

谢谢大家!

3 个答案:

答案 0 :(得分:3)

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

像:

int libFoo_version = 0x01000000;

或者你可以使用

char* libFoo_version = "1.0";

然后使用类似strings libFoo.a | grep libFoo_version命令和sed的内容来更改版本信息。

另一种选择是在存档中嵌入一个空文件,该文件包含版本信息。 YMMV

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果版本是源代码的一部分(例如,字符串常量),那么如果新版本与旧版本具有相同的长度,则可以使用sed来更改它。