You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

aarch64 Android设备静态交叉编译avr-gcc时-fuse-linker-plugin报错求助

问题:avr-gcc链接时-fuse-linker-plugin不支持的配置疑问

为避免依赖Android链接器,我在aarch64架构的Android设备上静态交叉编译了avr-gcc,其配置信息如下:

generic_arm64:/data/data/myapp/files/sdk/hardware/tools/avr/bin # ./avr-g++ -v
Using built-in specs.
COLLECT_GCC=./avr-g++
Target: avr
Configured with: /home/anton/build-avr-gcc/.build/HOST-aarch64-linux-gnu/avr/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=aarch64-host_unknown-linux-gnu --target=avr --prefix=/home/anton/x-tools/HOST-aarch64-linux-gnu/avr --with-local-prefix=/home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr --with-headers=/home/anton/x-tools/HOST-aarch64-linux-gnu/avr/avr/include --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG 1.24.0-rc3.1-f7b1ece' --disable-__cxa_atexit --disable-libgomp --disable-libmudflap --disable-libmpx --disable-libssp --disable-libquadmath --disable-libquadmath-support --with-gmp=/home/anton/build-avr-gcc/.build/HOST-aarch64-linux-gnu/avr/buildtools/complibs-host --with-mpfr=/home/anton/build-avr-gcc/.build/HOST-aarch64-linux-gnu/avr/buildtools/complibs-host --with-mpc=/home/anton/build-avr-gcc/.build/HOST-aarch64-linux-gnu/avr/buildtools/complibs-host --disable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++ -lm' --enable-target-optspace --disable-nls --enable-multiarch --enable-languages=c,c++ --enable-plugins --enable-lto
Thread model: single

编译与链接操作

  • 编译阶段我使用-flto参数,示例命令如下:
/data/user/0/myapp/files/sdk/hardware/tools/avr/bin/avr-g++ -no-canonical-prefixes -std=gnu++11 -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fpermissive -fno-threadsafe-statics -mmcu=atmega328p -DF_CPU=16000000L -MMD -flto -Wno-error=narrowing -DUSB_VID=null -DUSB_PID=null -DARDUINO=10812 -DIDE="ArduinoDroid" -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -I/data/user/0/myapp/files/sdk/hardware/arduino/variants/standard -I/data/user/0/myapp/files/sdk/hardware/arduino/cores/arduino /data/user/0/myapp/files/sdk/hardware/arduino/cores/arduino/new.cpp -o /data/user/0/myapp/files/coreBuild/new.cpp.o
  • 链接生成.elf文件时执行命令:
/data/user/0/myapp/files/sdk/hardware/tools/avr/bin/avr-gcc -no-canonical-prefixes -Os -flto -fuse-linker-plugin -Wl,--gc-sections -Wl,-T /data/user/0/myapp/files/sdk/hardware/tools/avr/avr/lib/ldscripts/avr5.x -mmcu=atmega328p -o /data/user/0/myapp/files/build/EchoString.cpp.elf ...

出现错误:

avr-gcc: error: -fuse-linker-plugin is not supported in this configuration

已确认的文件情况

我已检查设备上的文件,确认存在专用LTO相关可执行文件:

130|generic_arm64:/data/data/myapp/files/sdk/hardware/tools/avr/libexec/gcc/avr/7.3.0 # ls
cc1  cc1plus  collect2  liblto_plugin.a  lto-wrapper  lto1  plugin 
130|generic_arm64:/data/data/myapp/files/sdk/hardware/tools/avr/avr/bin # ls
as  avr-ld.bfd  ld  ld.bfd  nm

疑问

  • 错误提示中的“此配置”具体指什么?
  • 是否需要设置环境变量来指向lto-wrapper可执行文件?

内容的提问来源于stack exchange,提问作者4ntoine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:13:17