2016-09-16 11 views
0

AVR Cソースコードをオブジェクトファイルにコンパイルしました。リンクされたELFファイルには記号が含まれていません

~ /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

どのようにこのことができます:単一のファイルにすべてのファイルをリンクする場合、これらのシンボルは、私は、-gオプションを指定したが、失われているように見える

~ 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 ...

:これらのオブジェクトは、デバッグシンボルが含まれていますあれ?リンカは、リンクされたファイルにデバッグ情報を持つ新しいシンボルテーブルを作成するべきではありませんか?

avr-gcc: gcc version 4.9.3 (GCC) avr-ld: GNU ld (GNU Binutils) 2.25

+0

avrfreaks.netで 'clawson'によって解決されました。 avr-ldの 'search_paths_first'オプションが存在しないため、' -Wl、search_paths_first'は '-Wl、se'と' arch_paths_first'と誤って解釈されます。このオプションは、誤って設定されたCMake設定によって自動的に追加されました。 http://www.avrfreaks.net/comment/1985241#comment-1985241 –

+0

これはおそらく削除する必要があります(これは他人の役に立ちません)またはこの質問に答えてください。 –

答えて

1

-Wl,-search_paths_firstフラグはCLionにより添加しました。しかし、有効なavr-gccフラグではなく、一般的なOS Xフラグです。コンパイラは、-Wl,-sという最初の既存の一致を見つけようとしました。私。ストリップシンボル。

関連する問題