Сгенерировано с LTO версии 6.0 вместо ожидаемой 8.1 - PullRequest
0 голосов
/ 30 января 2020

Я следовал инструкциям по настройке movesense для windows [1] и запустил приведенную ниже команду cmake, которая, кажется, работает нормально. Тем не менее, когда я запускаю команду ninja, она завершается с ошибкой на шаге 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 FAILED: диск Movesense cmd.exe / C "&& C: \ PROGRA ~ 2 \ GNUTOO ~ 1 \ 92019- ~ 1 \ bin \ AR19DD ~ 1.EXE -W -Wall -Werror -Wfatal-errors -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wunreachable-code -Wsign- сравнить -Wno-aggregate-return -Wno-unused-параметр -Wno-unused-function -Wno-cast-align -Wno-строго-псевдонимы -Wno-возможно-неинициализированный -mthumb -mcpu = cortex-m4 -mfloat-abi = hard -mfpu = fpv4-sp-d16 -fno-common -prindstanding -fno-buildin -mapcs -gdwarf-3 -std = gnu ++ 11 -функции-разделы -fdata-секции -fno-rtti -fno-исключения -fno -unwind-tables -fno-use-cxa-atexit -fno-threadsafe-statics -Wno-lto-type-mismatch -Wno-старый-стиль-объявление -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-wl_loc , _calloc_r -Wl, - wrap -Wl, _fre e_r -Wl, - wrap -Wl, _realloc_r --specs = nano.specs --specs = nosys.specs -Wl, -Map -Wl, target.map -Wl, - g c -sections -Wl, -stati c -L C: / Пользователи / пользователь / Рабочий стол / Репозитории / Клоны / movesense-device-lib / MovesenseCoreLib / app-build / compiler /../ платформа / nRF5x / linker / gcc -fuse-linker -plugin -flto -T C: / Пользователи / пользователь / Рабочий стол / Репозитории / Клоны / movesense-device-lib / MovesenseCoreLib / app-build / compiler /../ платформа / nRF5x / компоновщик / gcc / appfla sh .ld CMakeFiles / Movesense.dir / App. cpp .obj CMakeFiles / Movesense.dir / BlinkyClient. cpp .obj CMakeFiles / Movesense.dir / созданный / sbem-код / ​​sbem_definitions. cpp .obj CMakeFiles / Movesense .dir / созданный / app-resources / resources. cpp .obj CMakeFiles / Movesense.dir / app-metadata / metadata. cpp .obj -o Movesense C: / Пользователи / пользователь / Рабочий стол / Репозитории / Клоны /movesense-device-lib/MovesenseCoreLib/lib/GCCARM/libmovesense-coreD.a -lm -lstdc ++ && cd. " lto1.exe: фатальная ошибка: поток байт-кода в файле 'C: / Users / user / Desktop / Репозитории / Clones / movesense-device-lib / MovesenseCoreLib / lib / GCCARM / libmovesense-coreD.a', созданный с версией 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 / бен /../ Библиотека / GCC / рычажного ни-EABI / 9.2.1 /../../../../ рука -none-eabi / bin / ld.exe: ошибка: ошибка lto-wrapper collect2.exe: ошибка: ld вернул 1 состояние выхода ниндзя: сборка остановлена: подкоманда не выполнена.

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

Только часть установки, которую я не уверен, прошла успешно, это установка «Visual Studio Redistributable 2015», в которой говорилось, что у меня более новая версия, и я не был уверен, как проверить, что этот шаг был выполнен правильно.


Я также попробовал то же самое, используя «Vagrant solution» и ошибку, которую я получаю на последнем шаге, когда набираю ninja dfupkg, это:

FAILED: Movesense: && / usr / bin / arm-none-eabi-g cc -W -Wall -Werror -Wfatal-errors -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wunreachable-code -Wsign-сравнить -Wno-агрегат-возврат -Wno-неиспользованный-параметр -Wno-неиспользованный -функция -Wno-cast-align -Wno-строго-псевдонимы -Wno-возможно-неинициализированный -mthumb -mcpu = cortex-m4 -mfloat-abi = hard -mfpu = fpv4-sp-d16 -fno-common -для просмотра -fno-builtin -mapcs -gdwarf-3 -std = gnu ++ 11 -функция-разделы -fdata-секции -fno-rtti -fno-исключения -fno-unwind-tables -fno-use-cxa-atexit -fno-threadsafe-statics -Wno-lto-type- несоответствие -Wno-old-style-объявление -Wno-Discarded-квалификаторы -Wp, -w -Wno-write-strings -U__INT32_TYPE__ -D__INT32_TYPE __ = int -U__UINT32_TYPE__ -D__UINT32_TYPE __ = "unsigned int" -flto -fno-fat-l-to- объекты -Os -O3 -DNDEBUG -Wl, - wrap -Wl, _malloc_r -Wl, - wrap -Wl, _calloc_r -Wl, - wrap -Wl, _free_r -Wl, - wrap -Wl, _realloc_r --specs = nano.specs --specs = nosys.specs -Wl, -Map -Wl, target.map -Wl, - g c -sections -Wl, -stati c -L / vagrant / movesense-device- Библиотека / MovesenseCoreLib / приложение-сборки / компилятор /../ платформы / nRF5x / linker / gcc -fuse-linker-plugin -flto -T / vagrant / movesense-device-lib / MovesenseCoreLib / app-build / compiler /../ platform / nRF5x / linker / gcc / appfla sh .ld CMakeFiles /Movesense.dir/App.cpp.obj CMakeFiles / Movesense.dir / BlinkyClient. cpp .obj CMakeFiles / Movesense.dir / генерируется / sbem-code / sbem_definitions. cpp .obj CMakeFiles / Movesense.dir / сгенерированные / app-resources / resources. cpp .obj CMakeFiles / Movesense.dir / app-метаданные / метаданные. 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-wrapper: фатальная ошибка: / usr / bin / arm-none-eabi-g cc возвращено 1 Компиляция состояния выхода завершена. /usr/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/bin/ld: ошибка: ошибка lto-wrapper collect2: ошибка: ld вернул 1 состояние выхода ниндзя: сборка остановлена: подкоманда не выполнена.

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

1 Ответ

1 голос
/ 31 января 2020

Похоже, что вы пытаетесь скомпилировать код с неверной версией компилятора (g cc 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 is не в актуальном состоянии (возможно, неверная версия компилятора), поэтому я рекомендую не использовать его, или вам нужно сильно его изменить.

...