示例:myprog.c:(.text+0x18): undefined reference to 'prog.new'
如果应该.text+0x18
引用错误的行,那么我该如何解释.text
和+0x18
。
我了解0x18 = 24d
,但该行中没有任何内容引用prog.new
。
这不是行号,也不是行首的偏移量!
这到底是什么?
谢谢,德里克
答案 0 :(得分:1)
它不是.
文件中的位置,而是sys.stdout.write(node.data + ' ').rsplit()
文件中的位置(即使它说的是“ myprog.c”而不是“ myprog.o”)。 .c
的意思是“文本部分开始之后的第18个字节”,文本部分是包含可执行代码的目标文件的一部分。
如果要获得这样的位置,则意味着目标文件不包含任何调试信息,因此链接器无法从字节号重构行号和列号。如果使用调试符号(.o
)进行编译,则应该改用正确的行号。