作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在没有 GRAPHIC_TESTS
的情况下成功地将 UnixBench
安装到 iMX6 Yocto 中。 Previous question.
当我尝试启用 GRAPHIC_TESTS
时,出现了这个错误:
fatal error: GL/gl.h: No such file or directory
所以我像这样将 opengl 包含路径添加到 Makefile 中:
CFLAGS = \
-I/opt/poky/1.6.2/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include \
-march=armv7-a -mtune=cortex-a9
freescale iMX6 yocto 貌似不支持OpenGL。所以改变了这个:
# GL_LIBS = -lGL -lXext -lX11
# to this ↓
GL_LIBS = -lGLESv2 -lEGL -lGAL -lXext -lX11
并更改了源代码:
//#include <GL/gl.h>
//#include <GL/glx.h>
// to this ↓
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
然后我得到了一个新的错误:
src/ubgears.c: In function 'gear':
src/ubgears.c:163:17: error: 'GL_FLAT' undeclared (first use in this function)
glShadeModel(GL_FLAT);
^
src/ubgears.c:163:17: note: each undeclared identifier is reported only once for each function it appears in
src/ubgears.c:168:12: error: 'GL_QUAD_STRIP' undeclared (first use in this function)
glBegin(GL_QUAD_STRIP);
^
src/ubgears.c:182:12: error: 'GL_QUADS' undeclared (first use in this function)
glBegin(GL_QUADS);
^
src/ubgears.c:267:17: error: 'GL_SMOOTH' undeclared (first use in this function)
glShadeModel(GL_SMOOTH);
^
src/ubgears.c: In function 'reshape':
src/ubgears.c:320:17: error: 'GL_PROJECTION' undeclared (first use in this function)
glMatrixMode(GL_PROJECTION);
^
src/ubgears.c:327:17: error: 'GL_MODELVIEW' undeclared (first use in this function)
glMatrixMode(GL_MODELVIEW);
^
src/ubgears.c: In function 'init':
src/ubgears.c:341:14: error: 'GL_LIGHT0' undeclared (first use in this function)
glLightfv(GL_LIGHT0, GL_POSITION, pos);
^
src/ubgears.c:341:25: error: 'GL_POSITION' undeclared (first use in this function)
glLightfv(GL_LIGHT0, GL_POSITION, pos);
^
src/ubgears.c:343:13: error: 'GL_LIGHTING' undeclared (first use in this function)
glEnable(GL_LIGHTING);
^
src/ubgears.c:349:21: error: 'GL_COMPILE' undeclared (first use in this function)
glNewList(gear1, GL_COMPILE);
^
src/ubgears.c:350:27: error: 'GL_AMBIENT_AND_DIFFUSE' undeclared (first use in this function)
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red);
^
src/ubgears.c:366:13: error: 'GL_NORMALIZE' undeclared (first use in this function)
glEnable(GL_NORMALIZE);
^
src/ubgears.c: At top level:
src/ubgears.c:378:30: error: unknown type name 'GLXContext'
Window *winRet, GLXContext *ctxRet)
^
src/ubgears.c: In function 'main':
src/ubgears.c:561:4: error: unknown type name 'GLXContext'
此代码可能仅用于 OpenGL 而不是 OpenGLES。
如果有人对此有想法,请分享。
更新:
Yocto中有glxgears -info
,我在here中查看了源代码.它是由 OpenGL 而不是 OpenGL ES 编写的! iMX6 应该只支持 OpenGL ES。怎么运行的?
解决方案:这是我的错误。我指出了错误的 OpenGL 库和 header 。
# GL_LIBS = -lGL -lXext -lX11
# to this ↓
GL_LIBS = -lXext -lX11 /work/fsl-release-bsp/build-x11/tmp/sysroots/imx6qsabresd/usr/lib/libGL.so
最佳答案
看起来您正在尝试为 OpenGL ES 平台编译 OpenGL 代码;两者不兼容,所以这是行不通的。
关于c++ - 如何使用 OpenGL 交叉编译 UnixBench?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43600921/
我在没有 GRAPHIC_TESTS 的情况下成功地将 UnixBench 安装到 iMX6 Yocto 中。 Previous question. 当我尝试启用 GRAPHIC_TESTS 时,出现
一.准备工作 1.首先使用root用户登陆. 2.运行Unixbeanch需要GCC的支持,在安装Unixbeanch之前,需要先安装GCC,在Debian中,直接执行如下命令:
我是一名优秀的程序员,十分优秀!