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

标签 linux unix makefile

我想知道有什么方法(如果可能的话),在编译后更改 Unix 中 *.a 文件的版本信息。 我知道如何在 Windows 中处理 Dll 文件 - 但不知道如何在 Unix 中管理它。

谢谢大家!

最佳答案

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

喜欢:

int libFoo_version = 0x01000000;

或者你可以使用

char* libFoo_version = "1.0";

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

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

关于linux - 如何更改*.a文件编译后的版本信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317037/

相关文章:

安卓构建失败

c - 制作文件依赖部分,要求有x.h : y. h?

Linux,XMonad 布局

linux - 我如何获取信息/proc/$pid/smaps

ruby-on-rails - 在 Linux mint 上安装 Ruby on Rails?

bash - 使用 Sed 读取目录中的最后 6 行

bash - 根据环境自定义 shell 脚本,如开发测试暂存生产

python - 在 I/O 重定向中执行 Python 脚本时出现 EOFError

c - 2 个子进程之间的管道 UNIX C

c++ - C/C++ Makefile : How to build dependencies between with . c文件和其他目录下的目标文件?