ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 апреля
476958 Топик полностью
fk0, легенда (27.12.2013 20:43, просмотров: 335) ответил fk0 на В очередной раз потратил пол-ночи на эту поделку индусов. XC18 называется, очередной версии. Разложенные грабли обошёл (попытку насильно вкомпилить свой doprnt.c, подсовывание собственных .h с дурными именами а-ля adc.h -- отсюда, кстати, и грабли
Продолжение. Удалось установить, что часть "can't generate code" связаны с трудностями внутри компилятора по обработке некоторых выражений. Для которых если вручную распределить временные переменные и переписать по-проще -- обходится. Типа такого, что x+=a+b -- это сложно. А t=a+b, x=x+t -- работает. На выражения x=y больше не говорил "can't generate code" (в отличии от предыдущих версий). И, таким образом, помучавшись ещё пару часиков я получил, что оно всё компилируется. По крайней мере в .p1 файлы. Даже варнинги не очень страшные -- они, в принципе, все понятные, хотя и не к месту (на русские буквы, на константу в if() вычисляемую в момент компиляции ввиду оптимизации, на (без)знаковые сравнения и т.п.) Сравниваю с GCC, в котором варнингов 0 шт. при настройках более жёстких, чем -Wall. Но дальше -- дальше я понял, что я ламир и финский студент, код проф. уровня писать не умею: /opt/microchip/xc8/v1.21/bin/cgpic18: signal 11 (900) exec failed: /opt/microchip/xc8/v1.21/bin/cgpic18 (908) exit status = 1 Что я могу с этим поделать? Выжирает массу памяти, гудит вентиляторами, и потом такое. На форуме микрочипа пишут, мол код недостаточно профессиональный. Код проф. уровня обязательно компилируется без сваливания компилятора. Пойду читать книжки по C# и Delphi. PS: пробовал xc8 версии 1.20 и 1.21. Без разницы. Ворованный (менеджер китайских лицензий в исходниках гуглится).
[ZX]