首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >avr-gcc 8.1.0使用“as`”代替“avr-as`”

avr-gcc 8.1.0使用“as`”代替“avr-as`”
EN

Stack Overflow用户
提问于 2018-07-28 14:32:40
回答 1查看 405关注 0票数 1

我想使用最新版本的avr-gcc (8.1.0)为一个新的项目,这是无法从ubuntu的软件包经理。所以我自己用这个站点的构建脚本编译了它:https://gist.github.com/zkemble/edec6914ba719bf339b1b85c1fa792dc (我在Ubuntu16.04下工作,所以我把BUILD_WIN32=0BUILD_WIN64=0设置为只构建linux版本)

在编译成功完成后,我试图通过手动复制输出文件和指向来使其可用,如下所示:(在命名相同时替换先前存在的文件)

  • ./linux/bin/*/usr/bin/
  • ./linux/lib/gcc/avr/8.10usr/lib/gcc/avr/
  • ./linux/share/man/*/usr/share/man/
  • ./linux/libexec/usr/
  • ./libc/avr/*/usr/lib/avr/
  • ./libc/avr/include/*/usr/lib/gcc/include/

这是一种尝试和错误,也许有些路径是错误的,但与老gcc安装的旧文件相比,这似乎是合理的。avr-g++ -v给了我正确的版本"gcc版本8.1.0 (GCC)“。

(我使用eclipse氧气作为IDE,因此下面的命令是自动生成的,请原谅膨胀的命令)--在编译我的项目时

代码语言:javascript
复制
    avr-g++ -v -I"/media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/ATmighty"
    -Wall -g2 -gstabs -Os -ffunction-sections -fdata-sections -fno-exceptions
    -std=c++11 -mmcu=atmega2560 -DF_CPU=16000000UL -MMD -MP -MF"main.d" -MT"main.o"
    -c -o "main.o" "/media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/QuickTests/main.cpp"

我得到以下错误:as: Unknown option: »-mmcu=avr6«。(完整的详细输出见下文)。

新的avr-g++编译器似乎没有使用正确的avr-as文件,而是使用主机默认的as汇编程序。但是avr-as位于\usr\bin\中,与as所在的文件夹相同。

如何设置avr++8.1.0-工具链才能正确工作?实际上,我想尝试一些新的avr-g++特性,而官方存储库中的默认版本实际上是旧的(一些4.x版本)。

全avr-g++输出:

代码语言:javascript
复制
Using built-in specs.
Reading specs from /usr/bin/../lib/gcc/avr/8.1.0/device-specs/specs-atmega2560
COLLECT_GCC=avr-g++
Target: avr
Configured with: ../configure --prefix=/home/valentin/Schreibtisch/avr-gcc-8.x/linux --target=avr --enable-languages=c,c++ --disable-nls --disable-libssp --disable-libada --with-dwarf2 --disable-shared --enable-static
Thread model: single
gcc version 8.1.0 (GCC) 
COLLECT_GCC_OPTIONS='-I' '/media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/ATmighty' '-Wall' '-g2' '-gstabs' '-Os' '-ffunction-sections' '-fdata-sections' '-fno-exceptions' '-std=c++11'  '-D' 'F_CPU=16000000UL' '-MMD' '-MP' '-MF' 'main.d' '-MT' 'main.o' '-c' '-o' 'main.o' '-v' '-specs=device-specs/specs-atmega2560' '-mmcu=avr6'
 /usr/bin/../libexec/gcc/avr/8.1.0/cc1plus -quiet -v -I /media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/ATmighty -imultilib avr6 -iprefix /usr/bin/../lib/gcc/avr/8.1.0/ -MMD main.d -MF main.d -MP -MT main.o -iplugindir=/usr/bin/../lib/gcc/avr/8.1.0/plugin -D__AVR_ATmega2560__ -D__AVR_DEVICE_NAME__=atmega2560 -D F_CPU=16000000UL /media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/QuickTests/main.cpp -iplugindir=/usr/bin/../lib/gcc/avr/8.1.0/plugin -mn-flash=4 -mno-skip-bug -quiet -dumpbase main.cpp -mmcu=avr6 -auxbase-strip main.o -g2 -gstabs -Os -Wall -std=c++11 -version -ffunction-sections -fdata-sections -fno-exceptions -mn-flash=4 -mno-skip-bug -fno-rtti -fno-enforce-eh-specs -fno-exceptions -o /tmp/ccLavHFh.s
GNU C++11 (GCC) version 8.1.0 (avr)
    compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Versions of loaded plugins:
 avr-flash-vtbl: Unknown version.
ignoring nonexistent directory "/usr/bin/../lib/gcc/avr/8.1.0/../../../../avr/include/c++/8.1.0"
ignoring nonexistent directory "/usr/bin/../lib/gcc/avr/8.1.0/../../../../avr/include/c++/8.1.0/avr/avr6"
ignoring nonexistent directory "/usr/bin/../lib/gcc/avr/8.1.0/../../../../avr/include/c++/8.1.0/backward"
ignoring nonexistent directory "/usr/bin/../lib/gcc/avr/8.1.0/../../../../avr/sys-include"
ignoring nonexistent directory "/usr/bin/../lib/gcc/avr/8.1.0/../../../../avr/include"
ignoring nonexistent directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/../../../../avr/include/c++/8.1.0"
ignoring nonexistent directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/../../../../avr/include/c++/8.1.0/avr/avr6"
ignoring nonexistent directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/../../../../avr/include/c++/8.1.0/backward"
ignoring duplicate directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/include"
ignoring duplicate directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/include-fixed"
ignoring nonexistent directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/../../../../avr/sys-include"
ignoring nonexistent directory "/usr/bin/../lib/gcc/../../lib/gcc/avr/8.1.0/../../../../avr/include"
#include "..." search starts here:
#include <...> search starts here:
 /media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/ATmighty
 /usr/bin/../lib/gcc/avr/8.1.0/include
 /usr/bin/../lib/gcc/avr/8.1.0/include-fixed
End of search list.
GNU C++11 (GCC) version 8.1.0 (avr)
    compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Versions of loaded plugins:
 avr-flash-vtbl: Unknown version.
Compiler executable checksum: 7b8fe0c14755945b805e4422187df660
COLLECT_GCC_OPTIONS='-I' '/media/Data/Eigene_Dateien/Valentins_Dateien/Projekte/Software/ATmighty/src/ATmighty' '-Wall' '-g2' '-gstabs' '-Os' '-ffunction-sections' '-fdata-sections' '-fno-exceptions' '-std=c++11'  '-D' 'F_CPU=16000000UL' '-MMD' '-MP' '-MF' 'main.d' '-MT' 'main.o' '-c' '-o' 'main.o' '-v' '-specs=device-specs/specs-atmega2560' '-mmcu=avr6'
 as -mmcu=avr6 -mgcc-isr -mno-skip-bug -o main.o /tmp/ccLavHFh.s
as: Unbekannte Option »-mmcu=avr6«
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 16:39:39

勇敢,你可能只是撕碎了你的装置。

  • 如果你不确定你在做什么,例如,在你的$HOME中使用一个前缀。
  • 不要将文件复制到现有的安装中。除了你更喜欢乱七八糟。
  • 始终(总是在源树之外配置)(不支持在源树中配置GCC )。
  • 广告你的问题:当GCC被配置时--target=avr,avr-as和avr-ld必须在路径上(可能还有其他Binutils,如avr-ranlib等)。或者,当您也构建avr时,您可以:配置-构建-安装avr,然后用类似于Binutils的前缀配置GCC。如果配置没有找到目标as,它只是在使用as。您可以从配置的内容中看到这一点(在前100行的某个位置),也可以从相应的config.log中看到。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51572312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档