从对象文件生成共享对象时是否有可能保留调试符号?
例如,我使用 cc 使用隐式目标生成带有调试符号的目标文件,并且只将 -g 添加到 CFLAGS。然后,我通过定义一个自定义目标来生成共享对象 (.so) 文件,在该目标中我使用 cc 的 -shared 选项。
到目前为止,我的观察是:
- 当直接从源代码文件生成共享对象时,我确实得到了调试符号
- 从包含调试符号的对象文件生成共享对象时使用 -g 选项无济于事
我的假设是:
- 调试符号确实不包括在内,因为在创建 rpm 时,/usr/lib/rpm/find-debuginfo.sh 会自动运行,并且我收到一些警告说我的文件已经被剥离
如果需要确切的文件进行检查,例如如何生成 radius.so:http://git.ozlabs.org/?p=ppp.git;a=blob;f=pppd/plugins/radius/Makefile 。 linux;h=24ed3e580c4db6aeca129dd22dbe6de5f2d1ff5f;hb=HEAD
我需要再次提及,我已向 CFLAGS 添加了 -g 选项。
谢谢!