3

在我的项目中甚至在 hello world 示例项目中将 Movesense 库从 1.8.1 更新到 1.9.0 后,我收到链接错误。有没有其他人有这个问题并且可以提供解决方案?

我正在运行 SDK

  • Ubuntu 18.04.2 LTS
  • arm-none-eabi-gcc 7.3.1

与 gcc-arm-none-eabi-7-2017-q4 相同的问题

这是调用 ninja 后链接失败的输出:

FAILED: Movesense 
: && /usr/bin/arm-none-eabi-gcc  -W -Wall -[...] ../platform/nRF5x/linker/gcc/appflash.ld CMakeFiles/Movesense.dir/App.cpp.obj CMakeFiles/Movesense.dir/HelloWorldService.cpp.obj CMakeFiles/Movesense.dir/generated/sbem-code/sbem_definitions.cpp.obj CMakeFiles/Movesense.dir/generated/app-resources/resources.cpp.obj CMakeFiles/Movesense.dir/app-metadata/metadata.cpp.obj  -o Movesense  /home/lukas/Projects/movesense/movesense-device-lib/MovesenseCoreLib/lib/GCCARM/libmovesense-coreD.a -lm -lstdc++ && :
lto1: internal compiler error: bytecode stream: expected tag round_div_expr instead of reference_type
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: /usr/bin/arm-none-eabi-gcc returned 1 exit status
compilation terminated.
/usr/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

使用 Movesense 1.8.1 一切正常:

git checkout 38be3c2
[...]
cmake -G Ninja -DMOVESENSE_CORE_LIBRARY=../MovesenseCoreLib/ -DCMAKE_TOOLCHAIN_FILE=../MovesenseCoreLib/toolchain/gcc-nrf52.cmake ../samples/hello_world_app
[...]
ninja
[...]
[8/8] Linking CXX executable Movesense

提前致谢!

4

1 回答 1

0

从 1.9.0 开始的 CHANGES.md (& README.md)

  • 要求:仅使用 Windows 构建环境(由于上述 GNU OSX 错误)
  • 要求:使用 GNU Toolchain for ARM v. 7.2.1 2017q4

这种情况很不幸,将在即将到来的 2.0 版本中通过新的基于 docker 的构建环境得到纠正。

完全免责声明:我为 Movesense 团队工作

于 2019-11-01T09:17:40.017 回答