【发布时间】:2015-04-28 08:26:56
【问题描述】:
我正在使用arm-none-eabi 编译源文件。
编译生成elf文件后。我使用 nm 命令得到以下符号
00021da8 T ISR_Init
U main
U malloc
010008b0 D MASTER_AHB_MAP
我正在使用 gdb 进行调试,但我对未定义的 main 符号有疑问。
gdb 生成以下错误:
Function "main" not defined.
当我将入口点更改为 main 时,它工作正常。
我正在开发裸机程序,所以我没有在程序的任何地方定义main。
我将我的程序与以下库链接
(GNU_ARM_TOOL)/lib/gcc/arm-none-eabi/4.8.4/armv7-ar/thumb/fpu
(GNU_ARM_TOOL)/arm-none-eabi/lib/armv7-ar/thumb/fpu
据我了解,main 符号是从上述库之一生成的。我的问题是如何避免编译器生成未定义符号main,或者至少删除最终elf 文件中未定义的main 符号以避免gdb 错误。
【问题讨论】:
-
运行用于链接程序的命令和 -v 选项。您应该看到引入了一些启动代码(有时称为 crt0.o)。这就是对 main() 的引用的来源。
标签: gdb cross-compiling debug-symbols