获取已安装程序的编译信息
我需要获取用于构建已安装程序的C编译器的信息。 我猜rt或者lib可以报告,但没有具体的。 并不是程序将安装在/usr/...
或类似的地方,因此无法访问构建目录以获取相关信息。
表现良好的程序应该理解--version
参数。
打包程序(即在Debian上安装dpkg -i
或apt-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
(细节可能有误,但你明白了)