在忍者上为覆盆子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.
我用Google搜索并发现了一些关于此site的相关文章。
根据这篇文章,错误可能是libssl1.0-dev
不存在的错误。我查了一下,发现它是libssl-dev
。用libssl1.0-dev替换它但仍然存在错误。
有人可以告诉我出了什么问题吗?
答案 0 :(得分:1)
eglCreateImageKHR()是EGL扩展EGL_KHR_image。自Cobalt编译以来,看起来头部声明了扩展名,但链接的EGL库没有定义它。令人惊讶的是,只有eglCreateImageKHR()缺失而且eglDestroyImageKHR也没有。
无论如何,我建议尝试更新EGL库,但我不熟悉raspi安装,所以不能告诉你具体细节。
或者,可以安全地在decode_target_create.cc中注释掉该函数的调用,因为SbImageIsDecodeSupported()总是为raspi返回false(请参阅image_is_decode_supported.cc),因此不应在平台上创建/销毁解码目标。 (解码目标支持是对raspi进行的工作。)
答案 1 :(得分:0)
我通过改变操作系统本身来解决这个问题。问题是钴与树脂拉伸不相容,但与raspie jessie不相容。因为正在从OS复制sysroot
文件,所以它正在创建该错误。我不知道确切的区别在哪里,但改为raspi jessie对我来说很好。