raspberry-pi - 在树莓派上编译钴时遇到错误
问题描述
在 ninja 上为 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 替换它,但错误仍然存在。
有人可以告诉我出了什么问题吗?
解决方案
eglCreateImageKHR() 是 EGL 扩展EGL_KHR_image。自从 Cobalt 编译后,头文件似乎声明了扩展,但链接的 EGL 库没有定义它。令人惊讶的是,只有 eglCreateImageKHR() 丢失了,而 eglDestroyImageKHR 也没有。
无论如何,我建议尝试更新 EGL 库,但我不熟悉 raspi 安装,因此无法告诉您具体细节。
或者,在 decode_target_create.cc 中注释掉对该函数的调用是安全的,因为 SbImageIsDecodeSupported() 总是为 raspi 返回 false(参见 image_is_decode_supported.cc),因此永远不应在平台上创建/销毁解码目标。(解码目标支持是 raspi 正在进行的一项工作。)
推荐阅读
- typescript - 我可以在没有 strictNullChecks: false 的情况下解决这个问题吗?
- python - 对 python venv 和全局模块的不满
- python - lstm 中的最后一个密集层出错,期望 (1,) 但给定 (88,),但对于我的模型,我需要最后一层仅为 88
- bazel - 读取 WORKSPACE 中的文件内容
- excel - 如何忽略使用可选参数的代码?
- javascript - 快递+猫鼬。如何使用相同的“hidenId”参数获取所有备份集合?
- javascript - 在 bootstrap-vue 项目中包含的方法没有被触发
- tensorflow - 使用 keras 和 tensorflow 的更快的 rcnn 代码示例
- android - 尝试在 RecyclerView 中显示大位图图像 Android 显示错误 setDataSource failed
- ios - 如何运行导致框架运行时错误“代码签名无效”的 iOS 应用程序