我想知道在编译之后在Unix中更改* .a文件的版本信息的方式(如果可能的话)。 我知道如何在Windows中为Dll文件执行此操作 - 但不知道如何在Unix中使用它来管理它。
谢谢大家!
答案 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
来更改它。