问题描述
我正面临与这里相同的问题:Generated with LTO version 6.0 instead of the expected 8.1
我尝试使用docker入门中的信息来构建新的2.0传感器固件。开始后:
ninja pkgs
编译失败,并带有以下注释:库“ libmovesense-coreD.a”是使用LTO版本6构建的,但预期是版本8.1。
我还在Ubuntu 19.10上手动安装了cmake 3.18.1和arm工具链2017_q4,但由于LTO包装器故障,它在步骤8/12停止了。
(...下面的几行...)
我只是从Movesense主页复制了cmake命令,并添加了sample_app的目录。这是我从docker-container中的movesense / myBuild /开始的代码:
cmake -G Ninja -DMOVESENSE_CORE_LIBRARY=../MovesenseCoreLib/ -DCMAKE_TOOLCHAIN_FILE=../MovesenseCoreLib/toolchain/gcc-nrf52.cmake ../samples/plain_app/
为了提供一些信息,这是cmake的结果:
CMake Warning (dev) in CMakeLists.txt:
No project() command is present. The top-level CMakeLists.txt file must
contain a literal,direct call to the project() command. Add a line of
code such as
project(ProjectName)
near the top of the file,but after cmake_minimum_required().
CMake is pretending there is a "project(Project)" command on the first
line.
This warning is for project developers. Use -Wno-dev to suppress it.
-- The C compiler identification is GNU 9.2.1
-- The CXX compiler identification is GNU 9.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - Failed
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - Failed
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc
CMake Warning at /movesense/MovesenseCoreLib/MovesenseFromStaticLib.cmake:19 (message):
Defaulting build type to 'Debug'
Call Stack (most recent call first):
CMakeLists.txt:13 (include)
-- PATH_TOOL_PYTHON will use python from shell PATH
nrfutil version >=4 detected. adding --no-backup option
-- Configuring done
-- Generating done
-- Build files have been written to: /movesense/myBuild
我并不关心“ ABI信息-失败”警告,因为最后一行说构建文件已被写入。也许这有点愚蠢。
这是“ ninja pkgs”命令的完整输出(我删除了上面的命令):
[1/12] Generating generated/app-resources/resources.c.h,generated/app-resources/resources.h,generated/app-resources/resources.cpp,app-resources.wbo
WBRES run with parameters:
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/whiteboard/builtinTypes
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/comm
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/component
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/meas
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/mem
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/misc
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/system
--includeDir
/movesense/myBuild/../MovesenseCoreLib//resources/movesense-api/ui
--cheaderFile
/movesense/myBuild/generated/app-resources/resources.c.h
--headerFile
/movesense/myBuild/generated/app-resources/resources.h
--sourceFile
/movesense/myBuild/generated/app-resources/resources.cpp
--libFile
/movesense/myBuild/app-resources.wbo
--cppDepends
../wb-resources/resources.h
/movesense/samples/plain_app/app_root.yaml
[2/12] Generating app-Metadata/Metadata.cpp
WBRES run with parameters:
--MetadataSourceFile
/movesense/myBuild/app-Metadata/Metadata.cpp
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/comm_1wire.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/comm_ble.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/comm_ble_gattsvc.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/component_ds24l65.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/component_eeprom.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/component_led.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/component_lsm6ds3.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/component_max3000x.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/component_nrf52.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/dev_system.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/device_system_debug.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/device_system_shutdown.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/device_systemevent.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_acc.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_ecg.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_gyro.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_hr.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_imu.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_magn.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/meas_temp.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/mem_datalogger.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/mem_logbook.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/misc_calibration.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/misc_gear.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/misc_manufacturing.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/movesense_info.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/movesense_time.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/movesense_types.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/system_debug.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/system_energy.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/system_memory.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/system_mode.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/system_settings.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/system_states.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/ui_ind.wbo
/movesense/myBuild/../MovesenseCoreLib//resources/GCCARM/Debug/wb-resources.wbo
/movesense/myBuild/app-resources.wbo
Metadata:
Strings: 622 (6929B)
Execution contexts: 2 (24B)
Security tags: 6 (12B)
Properties: 276 (1656B)
Property list entries: 451 (902B)
Sequential enum list entries: 107 (214B)
Non-sequential enum list entries: 29 (232B)
Data types: 374 (2244B)
Data type list entries: 76 (152B)
Parameters: 101 (606B)
Parameter list entries: 185 (370B)
Responses: 135 (540B)
Response list entries: 420 (840B)
Operations: 182 (2184B)
Operation lists: 137 (1644B)
Resource tree nodes: 200 (2800B)
Resource tree node list entries: 76 (152B)
[3/12] Generating SBEM serialization code
Skipped argument since not a valid yaml glob: /movesense/myBuild/../MovesenseCoreLib//generated/GCCARM/Debug
processing following yaml-files:
Processing total 21 .yaml-files
Found 44 resources and 63 datatype deFinitions.
Scanning 42 WB-resources
Creating SBEM-Groups
Generating C++ code. 20 groups,46 items
skipping unsupported resource: /Net
[8/12] Linking CXX executable Movesense
Failed: Movesense
: && /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc -W -Wall -Werror -Wfatal-errors -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wunreachable-code -Wsign-compare -Wno-aggregate-return -Wno-unused-parameter -Wno-unused-function -Wno-cast-align -Wno-strict-aliasing -Wno-maybe-uninitialized -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fno-common -ffreestanding -fno-builtin -mapcs -gdwarf-3 -std=gnu++11 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fno-unwind-tables -fno-use-cxa-atexit -fno-threadsafe-statics -Wno-lto-type-mismatch -Wno-old-style-declaration -Wno-discarded-qualifiers -Wp,-w -Wno-write-strings -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,--wrap -Wl,_malloc_r -Wl,_calloc_r -Wl,_free_r -Wl,_realloc_r --specs=nano.specs --specs=nosys.specs -Wl,-Map -Wl,target.map -Wl,--gc-sections -Wl,-static -L/movesense/MovesenseCoreLib/app-build/compiler/../platform/nRF5x/linker/gcc -fuse-linker-plugin -flto -T/movesense/MovesenseCoreLib/app-build/compiler/../platform/nRF5x/linker/gcc/appflash.ld CMakeFiles/Movesense.dir/App.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 /movesense/MovesenseCoreLib/lib/GCCARM/libmovesense-coreD.a -lm -lstdc++ && :
lto1: Fatal error: bytecode stream in file '/movesense/MovesenseCoreLib/lib/GCCARM/libmovesense-coreD.a' generated with LTO version 6.0 instead of the expected 8.1
compilation terminated.
lto-wrapper: Fatal error: /opt/gcc-arm-none-eabi/bin/arm-none-eabi-gcc returned 1 exit status
compilation terminated.
/opt/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: error: lto-wrapper Failed
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand Failed.
我只尝试在PC上手动安装和构建cmake和arm-toolchain,导致docker-build失败。
感谢您的帮助!
P.s。在2.0固件预览的“工具设置”部分中,有一个指向您的Bitbucket存储库的错误链接(第二个浅灰色框)。
解决方法
看起来您具有由GCC 6.0(可能是1.9.4,即当前的主服务器)而不是2.0预发行版本构建的MovesenseCoreLib。我的猜测是您还没有签出2.0分支。
尝试运行
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(
MaterialApp(
home: MyApp(),),);
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var myWidgetList = <Widget>[];
var xPosition = 0.0;
var yPosition = 0.0;
@override
Widget build(BuildContext context) {
return GestureDetector(
onPanUpdate: (DragUpdateDetails details) {
setState(() {
xPosition = details.localPosition.dx;
yPosition = details.localPosition.dy;
myWidgetList.add(generateBox());
});
},child: Scaffold(
body: Stack(
children: myWidgetList.toList(),);
}
// To Generate Animated Box for 500 milliseconds.
Widget generateBox() {
return Positioned(
left: xPosition,top: yPosition,child: TweenAnimationBuilder<double>(
tween: Tween<double>(begin: 0,end: pi),duration: const Duration(milliseconds: 500),builder: (_,double angle,__) {
return Transform.rotate(
angle: angle,child: Container(
width: 80,height: 80,decoration: BoxDecoration(
border: Border.all(
width: 3,color: Colors.grey[800],borderRadius: const BorderRadius.all(
Radius.circular(20),);
},onEnd: () {
myWidgetList.remove(myWidgetList[0]);
},);
}
}
在movesense-device-lib文件夹中。