获取已安装程序的编译信息

时间:2014-03-14 17:26:35

标签: c linux compilation cmake

我需要获取用于构建已安装程序的C编译器的信息。我猜rt或lib可以报告,但没有具体的。并不是程序将安装在/usr/...或类似的地方,因此无法访问构建目录以获取相关信息。

1 个答案:

答案 0 :(得分:2)

表现良好的程序应该理解--version参数。

打包的程序(即在Debian上安装了dpkg -iapt-get install .deb个软件包的程序......)也知道它们的程序包版本和来源。

您可以尝试在二进制可执行文件上使用strings。但是,这些元数据(关于用于构建程序的C编译器的版本)可能已被剥离(例如,通过strip命令)。

如果您正在开发该程序(即其C源代码)并且可以更改它,您可以考虑添加类似

的内容
timestamp.c: Makefile
      echo 'const char timestamp[]=' > $@
      date +'"built with $(shell $(CC) --version) on %c";' >> $@

yourprogram: $(OBJECTS) timestamp.o
      $(LINK.c) $(LDFLAGS) $< -o $@ $(LDLIBES)
      $(RM) timestamp.c

在你的Makefile中(细节可能有误,但你明白了)