开发环境:windows+cygwin+ arm-elf-gcc4.1.0
原来把所有.c文件放在一个目录里,所有.h文件放在另一个目录里,在makefile文件中用VPATH声明搜索目录,输入目标只写文件名,不写路径名,编译参数定义如下: MCU = arm7tdmi CFLAGS = -c -mcpu=$(MCU) -Wall -gdwarf-2 -O$(op) -nostartfiles -std=gnu99 ASFLAGS = -c -mcpu=$(MCU) -Wall -gdwarf-2 -O$(op) LDFLAGS = -mcpu=$(MCU) -Wall -nostartfiles -lm -lc 这样编译出来的文件用objcopy转换成bin文件后,bin文件里是纯代码,不含符号表。
后来调整工程,把源文件与相应的头文件分别放在各自目录中,makefile中定义输入目标时加上路径名,不用VPATH,编译参数相同,但是最终的bin文件里面却包含了符号表,直到把 -gdwarf-2去掉以后才没有符号表。
百思不得其解,望有经验的大侠指点迷津,虽不太影响使用,但仍然感觉很纳闷,为什么符号表会出现在bin文件里?
|