Gcc 链接的ELF文件不包含任何符号

Gcc 链接的ELF文件不包含任何符号,gcc,linker,avr,Gcc,Linker,Avr,我将AVR C源代码编译为目标文件。这些对象包含调试符号: ~avr nm代码c.o: 亿吨时钟初始化32MHZXTAL 00000000吨复制数据传感器 亿吨Find传感器 ui2cinitmaster 百万吨石油天然气 00000000 T读取传感器设置 00000000吨重置和校准采样时钟 00000000吨样品时钟 00000000吨SendDataToPC ... 将所有文件链接到单个文件时,这些符号似乎丢失,尽管我指定了-g选项: ~/usr/local/bin/avr gcc-O

我将AVR C源代码编译为目标文件。这些对象包含调试符号:

~avr nm代码c.o:
亿吨时钟初始化32MHZXTAL
00000000吨复制数据传感器
亿吨Find传感器
ui2cinitmaster
百万吨石油天然气
00000000 T读取传感器设置
00000000吨重置和校准采样时钟
00000000吨样品时钟
00000000吨SendDataToPC
...

将所有文件链接到单个文件时,这些符号似乎丢失,尽管我指定了-g选项:

~/usr/local/bin/avr gcc-O1-lm-Wall-Wstrict prototype-Wl,-gc sections-Wl,-g-std=gnu99-funsigned char-funsigned bitfields-fpack struct-fshort enums-ffunction sections-fdata sections-g-Wl,-search\u path\u first-Wl,-headerpad\u max\u install\u name-DF\u CPU=32000000-mmcu=atxmega128a1u file1.c.o file2.c.o-o-o program.elf
/usr/local/opt/avr binutils/bin/avr ld:警告:无法首先找到入口符号拱形路径;默认为0000000000000000
~avr nm program.elf
avr nm:program.elf:无符号

这怎么可能?链接器不应该在链接文件中创建一个带有调试信息的新符号表吗

avr gcc:gcc版本4.9.3(gcc) avr ld:GNU ld(GNU Binutils)2.25

-Wl,-search\u paths\u first
标志由CLion添加。但是,它不是有效的avr gcc标志,而是典型的OSX标志。编译器试图找到第一个现有匹配项,即
-Wl,-s
。即条纹符号

由avrfreaks.net上的
clawson
解决<由于avr ld中不存在
search\u paths\u first
选项,因此code>-Wl,search\u paths\u first被误解为
-Wl,se
arch\u paths\u first
。此选项是由配置错误的CMake配置自动添加的。您可能应该删除(不太可能对其他人有帮助)或回答此问题。