【发布时间】:2014-02-08 15:28:16
【问题描述】:
我正在尝试重现此 4-key-keyboard ,为此我正在尝试通过在我的 Linux 机器上使用 avr-gcc 编译 its source。
我设法通过使用参数扩展命令行来解决编译器抛出的几个错误,但现在我遇到了以下错误。问题是V-USB 上的很多演示项目使用相同的库并抛出相同的错误,我不想通过所有代码来尝试为我想要检查的每个项目修复它们。我意识到最好的方法是修复源代码中的错误,但是尽管可以轻松解决以下错误,但会引发新的错误,解决和的所有更改要复杂得多我无法保证生成的程序仍然可以正常工作。
我的问题是:avr-gcc 是否有一些兼容性命令行参数可以让代码像旧版本的 gcc 一样编译?
这是我用来编译源代码的命令:
avr-gcc main.c -I /usr/lib/avr/include/ -mmcu=attiny85 -DF_CPU=16000000 -Os -I ./usbdrv
这些是 avr-gcc 抛出的错误:
In file included from main.c:32:0:
./usbdrv/usbdrv.h:455:6: error: variable ‘usbDescriptorDevice’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
./usbdrv/usbdrv.h:461:6: error: variable ‘usbDescriptorConfiguration’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
./usbdrv/usbdrv.h:467:6: error: variable ‘usbDescriptorHidReport’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
./usbdrv/usbdrv.h:473:6: error: variable ‘usbDescriptorString0’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
./usbdrv/usbdrv.h:479:5: error: variable ‘usbDescriptorStringVendor’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
./usbdrv/usbdrv.h:485:5: error: variable ‘usbDescriptorStringDevice’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
./usbdrv/usbdrv.h:491:5: error: variable ‘usbDescriptorStringSerialNumber’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
main.c:105:14: error: variable ‘usbDescriptorHidReport’ must be const in order to be put into read-only section by means of ‘__attribute__((progmem))’
我的配置:
Ubuntu 13.10
avr-gcc (GCC) 4.7.2
【问题讨论】: