1

我已按照 windows [1] 的 movesense 设置说明运行以下 cmake 命令,这似乎可以正常工作。但是,当我运行 ninja 命令时,它在第 9/9 步失败,抱怨 LTO 版本与配置不匹配。有什么建议吗?

$ cmake -G Ninja -DMOVESENSE_CORE_LIBRARY=../MovesenseCoreLib/ -DCMAKE_TOOLCHAIN_FILE=../MovesenseCoreLib/toolchain/gcc-nrf52.cmake ../samples/blinky_app/

错误:

使用 LTO 版本 6.0 生成,而不是预期的 8.1 编译终止。lto-wrapper.exe:致命错误:C:\PROGRA~2\GNUTOO~1\92019-~1\bin\AR19DD~1.EXE 返回 1 退出状态编译终止。c:/progra~2/gnutoo~1/92019-~1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none -eabi/bin/ld.exe:错误:lto-wrapper 失败 collect2.exe:错误:ld 返回 1 退出状态 ninja:构建停止:子命令失败。使用 LTO 版本 6.0 生成,而不是预期的 8.1 编译终止。lto-wrapper.exe:致命错误:C:\PROGRA~2\GNUTOO~1\92019-~1\bin\AR19DD~1.EXE 返回 1 退出状态编译终止。c:/progra~2/gnutoo~1/92019-~1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none -eabi/bin/ld.exe:错误:lto-wrapper 失败 collect2.exe:错误:ld 返回 1 退出状态 ninja:构建停止:子命令失败。

GCC --version 8.2.0
cmake --version 3.16.3
ninja --version 1.10.0
nrfutil --help

唯一不确定的安装部分是“Visual Studio Redistributable 2015”的安装,它说我有一个更新的版本,我不确定如何验证这一步是否正确。


我现在也使用“Vagrant 解决方案”尝试了同样的事情,当我输入 ninja dfupkg 时,我在最后一步遇到的错误是:

预期标记 round_div_expr 而不是 reference_type 请提交完整的错误报告,并在适当时提供预处理源。看 https://gcc.gnu.org/bugs/获取说明。lto-wrapper:致命错误:/usr/bin/arm-none-eabi-gcc 返回 1 退出状态编译终止。/usr/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld:错误:lto-wrapper 失败collect2:错误:ld 返回 1 退出状态 ninja:构建停止:子命令失败。

[1] https://bitbucket.org/suunto/movesense-device-lib/src/master/

4

1 回答 1

1

似乎您正在尝试使用错误版本的编译器 (gcc 9.2.1) 编译代码c:/progra~2/gnutoo~1/92019-~1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe,您应该安装 2017q4 版本的编译器工具链。

Vagrant 不是最新的(可能是编译器版本错误),所以我建议不要使用它,否则你需要自己大量修改它。

于 2020-01-31T06:56:19.690 回答