のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

libegl.so: undefined reference to `glxx_buffer_info_set'

以下のエラーメッセージがでた。

make all 
'Building target: InitEgl'
'Invoking: Cross GCC Linker'
arm-linux-gnueabihf-gcc -L"d:\SysGCC\firmware-master\opt\vc\lib" -o "InitEgl"  ./src/InitEgl.o   -lGLESv2 -legl -lbcm_host -lvcos -lvchiq_arm
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_buffer_info_set'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glBufferSubData'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_GetFramebufferAttachmentParameteriv'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_state_free'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_DeleteRenderbuffers'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_set_error'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_GenFramebuffers'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_set_error_api'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_BindRenderbuffer'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_FramebufferTexture2D'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_GenRenderbuffers'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_DeleteFramebuffers'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_GetRenderbufferParameteriv'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_RenderbufferStorage'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_IsFramebuffer'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glintAttribPointer'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_GenerateMipmap'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glPointSizePointerOES'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `gl20_client_state_init'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `gl11_client_state_init'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_FramebufferRenderbuffer'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_IsRenderbuffer'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_buffer_info_get'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_BindFramebuffer'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glxx_client_CheckFramebufferStatus'
d:\SysGCC\firmware-master\opt\vc\lib/libegl.so: undefined reference to `glDiscardFramebufferEXT'
collect2: ld returned 1 exit status
make: *** [InitEgl] Error 1

EGLとGLESv2のライブラリ名の順番を変えたらエラーが消えた。

 修正前(NG) -lGLESv2 -lEGL
 修正後(OK) -lEGL -lGLESv2

Raspberry Pi ? View topic - Getting Started with EGL / OpenGL ES

libEGL missing/erroneous links to GLESv2

155 void glxx_buffer_info_set(GLXX_CLIENT_STATE_T *state, GLenum target, GLXX_BUFFER_INFO_T* buffer_info)
156 {
157   GLuint buffer = get_bound_buffer(state, target);
158
159   if(buffer != 0)
160   {
161      GLXX_BUFFER_INFO_T *stored = khrn_pointer_map_lookup(&state->buffers, buffer);
162      if(!stored)
163      {
164         stored = khrn_platform_malloc(sizeof(GLXX_BUFFER_INFO_T), "GLXX_BUFFER_INFO_T");
165         khrn_pointer_map_insert(&state->buffers, buffer, stored);
166      }
167      buffer_info->id = buffer;
168      //copy into stored
169      *stored = *buffer_info;
170   }
171 }