Как скомпилировать V-USB для ардуино?

Проще говоря, я скачал порт V-USB для Arduino и не могу скомпилировать пример, который пришел с ним. Я получаю следующее сообщение при попытке скомпилировать с помощью Arduino IDE 1.0.1

avr-gcc: error: unrecognized command line option '-assembler-with-cpp'

Я понимаю, что это, скорее всего, проблема несовместимости версий, и ее можно избежать, понизив мой avr-gcc до более старой версии, но можно ли каким-то образом заставить его скомпилироваться с использованием последней версии avr-gcc?

Всего несколько заметок об окружающей среде, в которой я примеряю это.

  • ОС: Fedora, выпуск 17 (Beefy Miracle)
  • avr-gcc: (Fedora 4.7.2-1.fc17) 4.7.2
  • IDE Arduino: (arduino-1.0.1-1.fc17) 1.0.1

person Kęstutis    schedule 24.12.2012    source источник
comment
Кстати, для пользователей Windows - не утруждайте себя тестированием только для того, чтобы доказать, что это работает, так как я знаю, что это прекрасно работает в Windows.   -  person Kęstutis    schedule 24.12.2012


Ответы (2)


Параметр -assembler-with-cpp указывает компилятору, что все следующие файлы следует рассматривать как файлы на ассемблере, требующие предварительной обработки. На первый взгляд в v-usb они предоставляют .asm оболочки для .S файлов. Вам не нужно их использовать, и компилятор автоматически распознает файлы .S без каких-либо опций.

Если проблема не в обертках .asm, описанных выше, вы можете переименовать рассматриваемые файлы в .S.

Вы пробовали компилировать без флага? Что случилось?

person Jester    schedule 24.12.2012
comment
Нет, я не пробовал компилировать без флагов, проблема в том, что я вообще не передаю никаких флагов, и IDE, похоже, добавляет их самостоятельно. К счастью, это привело меня к выводу, что с моей IDE что-то не так, я думал, что такой флаг даже существует в компиляторе avr-gcc, поэтому я решил установить IDE вручную и, к моему удивлению и в то же время удаче, Arduino IDE 1.0. 3 скомпилировал скетч без каких-либо проблем, так что спасибо за подсказки, даже если они не были тем ответом, который я искал. - person Kęstutis; 27.12.2012

С подсказками Jester мне удалось решить эту проблему, обновив IDE до версии 1.0.3 (1.0.2 тоже может работать), и это сработало как шарм.

Так что я думаю, что проблема была не в коде или компиляторе, а в том, что IDE 1.0.1 ожидала более старую версию avr-gcc и использовала устаревший флаг для компиляции и просто потерпел неудачу, поскольку этот флаг больше не доступен в новом компиляторе, поэтому вам нужно либо понизить версию компилятора, либо обновить IDE, и, с моей точки зрения, обновление всегда является правильным выбором.

person Kęstutis    schedule 27.12.2012