我將我的AVR C源代碼編譯爲目標文件。這些對象包含調試符號:鏈接的ELF文件不包含符號
~ avr-nm code.c.o: 00000000 T ClockInit32MhzXtal 00000000 T CopyDataToSensors 00000000 T FindSensors U I2CInitMaster 00000000 T PC_UsartInit 00000000 T ReadFromSensorSettings 00000000 T ResetAndAlignSampleClock 00000000 T SampleClockTimerInit 00000000 T SendDataToPC ...
當所有文件鏈接到一個文件中,這些符號看起來雖然我指定-g選項丟失:
~ /usr/local/bin/avr-gcc -O1 -lm -Wall -Wstrict-prototypes -Wl,--gc-sections -Wl,-g -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -g -Wl,-search_paths_first -Wl,-headerpad_max_install_names -DF_CPU=32000000 -mmcu=atxmega128a1u file1.c.o file2.c.o -o program.elf /usr/local/opt/avr-binutils/bin/avr-ld: warning: cannot find entry symbol arch_paths_first; defaulting to 0000000000000000 ~ avr-nm program.elf avr-nm: program.elf: no symbols
豈今是?鏈接器不應該在鏈接文件中創建一個帶有調試信息的新符號表?
avr-gcc: gcc version 4.9.3 (GCC) avr-ld: GNU ld (GNU Binutils) 2.25
解決'clawson'在avrfreaks.net。 '-Wl,search_paths_first'被錯誤地解釋爲'-Wl,se'和'arch_paths_first',因爲avr-ld中的'search_paths_first'選項不存在。該選項是由錯誤配置的CMake配置自動添加的。 http://www.avrfreaks.net/comment/1985241#comment-1985241 –
你應該刪除(不太可能這會幫助別人)或回答這個問題。 –