Это сообщение об ошибке crypti c часто вызывается попыткой выполнить программу, скомпилированную для другой архитектуры.
Процесс сборки предоставляет protoc
исполняемый файл, но если вы пересекаетесь Компиляция is будет собираться для вашей целевой архитектуры, а не для x86_64
.
Поскольку процесс сборки в один момент попытается использовать исполняемый файл protoc
, созданный для его собственной цели, он не будет выполнен это в вашей x86_64
системе из-за несоответствия архитектуры.
Вы можете проверить, выполнив команду file ../usr/bin/protoc
. В идеале вы должны видеть ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV)
в выводе, но должны видеть ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV)
или AArch64
эквивалент в случае, если я был бы прав.
При кросс-компиляции буфера протокола вы должны убедиться, что вы уже собрал / установил protoc
для x86_64
, а затем при настройке кросс-компиляции используйте следующую опцию:
./configure --with-protoc=protoc
Вам придется заменить protoc
на местоположение x86_64
Прото c версия в том случае, если она не будет на вашем пути. См. Примечание для кросс-компиляции раздела документации по Буферу протокола.