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 }