Обнаружена ошибка при компиляции кобальта на raspberry pi

При компиляции кобальта для raspberry pi на ниндзя получаю вот такую ​​ошибку:

undefined reference to symbol 'eglCreateImageKHR'

вот полный след:

[1/1] LINK cobalt FAILED: cobalt /home/mi07/work/raspitools/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ @cobalt.rsp /home/mi07/work/raspitools/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: obj/starboard/raspi/2/../shared/open_max/starboard_platform.decode_target_create.o: undefined reference to symbol 'eglCreateImageKHR' /home/mi07/work/raspitools/sysroot/opt/vc/lib/libbrcmEGL.so: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.

Я погуглил и нашел несколько статей на этом сайте.

Согласно этой статье, причиной может быть отсутствие libssl1.0-dev. Я проверил и обнаружил, что это libssl-dev. Заменил на libssl1.0-dev, но ошибка осталась.

Может кто-нибудь сказать мне, что происходит не так?


person Midhun    schedule 11.06.2018    source источник


Ответы (2)


eglCreateImageKHR() — это расширение EGL EGL_KHR_image. Поскольку Cobalt скомпилирован, кажется, что заголовки объявляют расширение, но связанная библиотека EGL не определяет его. Удивительно, что отсутствует только eglCreateImageKHR(), а не eglDestroyImageKHR.

В любом случае, я рекомендую попробовать обновить библиотеку EGL, но я не знаком с установкой raspi, поэтому не могу рассказать вам подробности.

В качестве альтернативы безопасно закомментировать вызов этой функции в decode_target_create.cc, поскольку SbImageIsDecodeSupported() всегда возвращает false для raspi (см. image_is_decode_supported.cc), поэтому цели декодирования никогда не должны создаваться/удаляться на платформе. (Поддержка цели декодирования для raspi находится в стадии разработки.)

person Toan Pham    schedule 11.06.2018
comment
Я прокомментировал их, и эта часть работала нормально, но наткнулась на другую ошибку, например, после undefined reference to <some function call> @GLIBCXX_3.4.21 - person Midhun; 14.06.2018

Я решил это, изменив саму ОС. Проблема заключалась в том, что кобальт был совместим не с raspi stretch, а с raspi jessie. Поскольку файлы sysroot копируются из ОС, возникает эта ошибка. Я не знаю точно, в чем разница, но переход на raspi jessie у меня отлично сработал.

person Midhun    schedule 12.06.2018