我遵循了windows 1的movesense设置说明,并运行了下面的cmake命令,该命令似乎运行良好。但是,当我运行忍者命令时,它在步骤9/9上失败,抱怨LTO版本与配置不匹配。有什么建议吗?
$ cmake -G Ninja -DMOVESENSE_CORE_LIBRARY=../MovesenseCoreLib/ -DCMAKE_TOOLCHAIN_FILE=../MovesenseCoreLib/toolchain/gcc-nrf52.cmake ../samples/blinky_app/
错误:
9/9链接CXX可执行的Movesense失败: Movesense cmd.exe /C "cd。&& C:\PROGRA~2\GNUTOO~1\92019-~1\bin\AR19DD~1.EXE -W -Wall -Werror -Wno- -Wshadow -arith -Wcast-qual --W strings Wunreachable code-code Wno-聚合-返回-Wno-未使用的-参数-Wno-未使用的-函数-Wno-cast-Wno-严格-混叠-Wno-可能-未初始化的-mthumb -mcpu=皮层-m4-m浮-abi=硬-mfpu=fpv4 4-sp-d16-fno-公共-ffreestanding -fno-内置-g侏儒-3。-std=gnu++11 -连接-段-fdata-节-fno-rtti fno-异常-fno-展开-表-fno-使用-cxa-atexit fno-线程安全-静态-Wno-lto-类型错配-Wno-旧风格-声明-Wno-丢弃-限定符-Wp,-w -Wno- -U__INT32_TYPE__ -D__INT32_TYPE__=int -U__UINT32_TYPE__ -D__UINT32_TYPE__="unsigned int“-flto -fno-fat-lto-objects -Os -g -DWB_UNITTEST_BUILD -Wl,-包装-Wl,_malloc_r -Wl,-包装-Wl,_calloc_r -Wl,-Wno,-Wl_calloc_r,-Wno,_realloc_r-LC:/Users/user/Desktop/Repositories/Clones/movesense-device-lib/MovesenseCoreLib/app-build/compiler/../platform/nRF5x/linker/gcc -fuse-linker-plugin -flto -TC:/Users/user/Desktop/Repositories/Clones/movesense-device-lib/MovesenseCoreLib/app-build/compiler/../platform/nRF5x/linker/gcc/appflash.ld CMakeFiles/ Movesense.dir/App.cpp.objCMakeFiles/Movesense.dir/BlinkyClient.cpp.objCMakeFiles/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 C:/Users/user/Desktop/Repositories/Clones/movesense-device-lib/MovesenseCoreLib/lib/GCCARM/libmovesense-coreD.a -lm -lstdc++ && cdlto1.exe:致命错误:用LTOVersion6.0生成的文件'C:/Users/user/Desktop/Repositories/Clones/movesense-device-lib/MovesenseCoreLib/lib/GCCARM/libmovesense-coreD.a‘中的字节码流,而不是预期的8.1编译终止。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-包装失败的收藏品2.exe:错误: ld返回一个退出状态忍者:构建停止:子命令失败。
GCC --version 8.2.0
cmake --version 3.16.3
ninja --version 1.10.0
nrfutil --help
安装过程中唯一不确定的部分是"Visual可再发行版2015“的安装,它说我有一个更新的版本,我不知道如何验证这个步骤是否正确。
我现在也尝试过使用"Vagrant解决方案“,在最后一步输入忍者dfupkg时遇到的错误是:
失败: Movesense:&/usr/bin/arm-none eabi-fno -W -Wall -Werror - -Wshadow -w指针-arith -Wcast-qual -Wwrite Wwrite code w符号-比较-Wno-聚合-Wno-未使用的参数-Wno-未使用的函数-Wno-cast--W-Wno-严格混叠-Wno-可能-非初始化的-mthumb -mcpu=cortex=code mfpu=fpv4 4-d16-fno-公共-ffreestanding -fno-builtin -mapcs g侏儒-3 -std=gnu++11 -功能-节-fno-rtti fno-例外-fno-展开-表-fno-使用-cxa-atexit fno-线程安全-静态-Wno-lto-类型错配-Wno-旧风格-声明-Wno-废弃-限定符-Wp,-w -Wno- -U__INT32_TYPE__ -D__INT32_TYPE__=int -U__UINT32_TYPE__ -D__UINT32_TYPE__="unsigned int“-flto -fno-fat-lto-objects -Os -O3 -DNDEBUG -Wl,-包装-Wl,_malloc_r -Wl,-包装-Wl,_calloc_r -Wl,-Wno,-Wl_calloc_r,-Wno,_realloc_r-L/vagrant/movesense-device-lib/MovesenseCoreLib/app-build/compiler/../platform/nRF5x/linker/gcc -fuse-linker-plugin -flto -T/vagrant/movesense-device-lib/MovesenseCoreLib/app-build/compiler/../platform/nRF5x/linker/gcc/appflash.ld CMakeFiles/Movesense.dir/App.cpp.objCMakeFiles/Movesense.dir/BlinkyClient.cpp.obj CMakeFiles/Movesense.dir/generated/sbem-code/sbem_definitions.cpp.objCMakeFiles/Movesense.dir/generated/app-resources/resources.cpp.obj CMakeFiles/Movesense.dir/app-metadata/metadata.cpp.obj -o Movesense /vagrant/movesense-device-lib/MovesenseCoreLib/lib/GCCARM/libmovesense-core.a -lm -lstdc++ &:lto1:内部编译器错误:字节码流:期望标记round_div_expr而不是reference_type请提交完整的错误报告,在适当的情况下使用预处理的源。有关说明,请参见https://gcc.gnu.org/bugs/。lto包装:致命错误:/usr/bin/arm eabi-gcc返回1退出状态编译终止。/usr/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld:错误:lto包装失败collect2: collect2: ld返回一个退出状态忍者:构建停止:子命令失败。
发布于 2020-01-30 22:56:19
似乎您正在尝试编译带有错误版本的编译器(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版本的编译器工具链。
“流浪者”并不是最新的(可能有错误的编译器版本),所以我建议您不要使用它,或者您需要自己大量修改它。
https://stackoverflow.com/questions/59991247
复制